WebAPI中对HttpDelete的长度请求?

时间:2015-10-27 11:56:10

标签: c# .net asp.net-web-api http-status-code-400 http-delete

我的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日志中获得任何内容。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

所以我认为我找到了原因,看起来像Microsoft将URL段限制为260。

此处有更多信息,请查找UrlSegmentMaxLength

https://support.microsoft.com/en-us/kb/820129

编辑:

所以这是个问题。

它不仅适用于删除,还适用于任何其他http类型的操作,在网址中包含长段。

解决方案是使用您想要的值更新注册表项,如果您需要超过260个字符的网段,这是默认值。

希望这会帮助别人。