我正在使用带有MVC4的ServiceStack,并且在请求参数很长时会出现500错误。我通过AJAX将逗号分隔的ProductId发布到控制器。在控制器中,我跟随调用servicestack API来检索数据。
ResponseDTO res = restClient.Get(new RequestDTO { ProductIDs = ids});
//ResponseDTO res = restClient.Get(new RequestDTO { ProductIDs = "1234,1235,1236"});
如果我在上面提交小参数,它可以正常工作,没有错误。但是当参数字符串在1800个字符的范围内时,它只是在上面的行上失败并且给出500内部服务器错误:
NetworkError: 500 Internal Server Error - http://localhost/Products/GetProducts
Exception Details: ServiceStack.ServiceClient.Web.WebServiceException: Not Found
发布大型参数请求的GET方法是否有限制?为什么它对于小参数成功调用API,通过SQL过程检索数据并发送到正确查看的大请求失败。我可以通过什么来解决这个问题?谢谢!
P.S。当我通过VS2012调试时,我看到异常细节我看到消息:未找到和StatusCode:404。
答案 0 :(得分:1)
正如Scott上面提到的,我们尝试了所有方法的POST,并解决了问题。我知道GET限制了浏览器的URL长度,但并不认为它很重要因为我们有ServiceStack框架,所有的例子都使用GET。再次感谢Scott。