2015-10-27 59 views
0

我在我的Web API一個[HttpDelete]動作,當我用很長的URL調用它,我得到400WebAPI中的HttpDelete的長度請求?

我肯定知道這是因爲我設法失敗/加傳遞請求的URL長度和刪除單個字符。

我有,我曾通過增加配置,以我的web.config解決[HttpGet]請求長度的一個類似的問題:

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

根據瀏覽器/服務器軟件(HTTP規範沒有限制),我有一種感覺,它是從過去通過HTTP進行的一些工作完成的一些工作。我們在談論多少個角色? – VictorySaber

+1

我相信你會發現一個問題:「爲什麼地球上有這麼長的URI?」令人討厭,但是真的,爲什麼?你的_only_選項允許更長的URI嗎? – CodeCaster

+0

338對於整個URL,有問題的路由參數(字符串)失敗,長度爲261,並且傳遞260個字符 –

回答

0

所以我想我找到了原因,看起來像微軟限制URL段260

更多的信息在這裏,尋找UrlSegmentMaxLength

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

編輯:

所以這是挑戰性的問題。

這不僅適用於刪除,而且適用於任何其他http類型的操作,該操作在URL中有一長段。

解決方法是使用所需值更新註冊表項,如果需要超過260個字符的URL段(默認值)。

希望這會幫助別人。