2013-08-01 143 views
4

我工作的一個Web API和我已經設置了網絡配置文件,接受6144作爲URL的最大長度如下錯誤的請求 - 無效的URL網頁API

<system.web> 
    <compilation debug="true" targetFramework="4.5" /> 
    <httpRuntime maxUrlLength="6144" 
       relaxedUrlToFileSystemMapping="true" 
       targetFramework="4.5"/> 

當我調用API用299個字符一切工作正常,但有超過299個字符它提供了一個錯誤的請求 - 無效的URL

樣品網址:

http://localhost:56835/api/multibuys/10270001C1001034900|10358419P4001027620|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|10781772P4805004950|

+0

嘗試使用IIS表達,而不是卡西尼。 –

+0

nope仍然相同 – rushd

+0

也許在這篇文章中的東西有助於http://stackoverflow.com/questions/1185739/asp-net-mvc-url-routing-maximum-path-url-length –

回答

6

我有當自主託管web-api時也存在同樣的問題。我猜想你正在碰到的限制是Http.sys中的UrlSegmentMaxLength默認值。

要解決這個問題,你需要在

HKEY_LOCAL_MACHINE \ SYSTEM添加註冊表DWORD \ CURRENTCONTROLSET \ SERVICES \ HTTP \參數

enter image description here

稱爲UrlSegmentMaxLength並給這是你想要的價值:

UrlSegmentMaxLength 260 0 - 32,766個字符URL路徑段(URL中斜線之間的區域)中的最大字符數。如果爲零,則其長度受ULONG的最大值限制。

參考文獻:
https://serverfault.com/questions/66410/iis-6-on-x64-and-long-urls
http://support.microsoft.com/kb/820129

相關問題