我的Web API中有[HttpDelete]
个动作,当我用长URL调用它时,我得到400个。
我确信它的URL长度是因为我设法通过添加和删除单个字符来失败/传递请求。
我遇到了[HttpGet]
请求长度的类似问题,我通过在web.config中添加配置解决了这个问题:
在system.web
下:
<httpRuntime maxRequestLength="1048576" maxQueryStringLength="32768" maxUrlLength="65536" waitChangeNotification="2147483647" maxWaitChangeNotification="2147483647" requestPathInvalidCharacters="" targetFramework="4.5" />
在system.webServer
下:
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" maxQueryString="32768" maxUrl="65536"/>
</requestFiltering>
</security>
但这个问题似乎也在Delete
行动中再现,而且我没有找到解决方案。我也没有在IIS跟踪和IIS日志中获得任何内容。
如何解决这个问题?
答案 0 :(得分:0)
所以我认为我找到了原因,看起来像Microsoft将URL段限制为260。
此处有更多信息,请查找UrlSegmentMaxLength
https://support.microsoft.com/en-us/kb/820129
编辑:
所以这是个问题。
它不仅适用于删除,还适用于任何其他http类型的操作,在网址中包含长段。
解决方案是使用您想要的值更新注册表项,如果您需要超过260个字符的网段,这是默认值。
希望这会帮助别人。