我有一個JS檔案,它回傳一個HTTP錯誤414.0--URL太長。
URL并不是特別長 - http://beta.abcdefg.abc.ab/abcdef/abcdefgh.js
我懷疑可能是物理路徑太長了,但它只有91個字符 - abcdefsitestorage.file.core.windows.netiisfarmWebsitesasp-appsabcdefabcdefgh.js
。(例子與真實URL的長度和結構相同)
我在 web.config 中試驗了一些設定,但它們沒有任何區別我在 web.config 中試驗了一些設定,但它們沒有任何區別。
<httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" maxRequestLength="2147483647" executionTimeout="1200" maxQueryStringLength="2097151" maxUrlLength="65536" relaxedUrlToFileSystemMapping="true" />
而且
<security>
<requestFiltering>
<requestLimits maxUrl ="65536" maxAllowedContentLength="4294967295" maxQueryString ="2097151" />
</requestFiltering>
</security>
我現在已經沒有想法了,所以如果有人能給我指出正確的方向,那就太好了!
編輯:
。編輯:
確認問題出在IIS上。服務器回應頭是服務器。Microsoft-IIS/10.0
目前正試圖讓FRT運行,它目前沒有記錄任何東西。
<system.webServer>
<tracing>
<traceFailedRequests>
<add path="*">
<traceAreas>
<add provider="ASPNET" areas="Infrastructure, Module,Page,AppServices" verbosity="Verbose" />
<add provider="WWW Server" areas="Rewrite, Authentication, Security, Filter, StaticFile, CGI, Compression, Cache, RequestNotifications, Module" verbosity="Verbose" />
</traceAreas>
<failureDefinitions statusCodes="100-900" />
</add>
</traceFailedRequests>
</tracing>
</system.webServer>
編輯2:
我又做了一些測驗,在這個特定的位置,對于.js、.css和.txt檔案,它的錯誤是414,但是對于.aspx檔案,它并沒有錯誤。
是否有一個單獨的位置對非aspx檔案進行了限制設定?
編輯3:
即使目標檔案不存在,它也會給出一個414的錯誤!
uj5u.com熱心網友回復:
這個錯誤實際上是從http.sys拋出的,而不是從IIS。這個錯誤是在請求處理管道中把請求傳遞給IIS之前拋出的。
- 為了驗證這一點,你可以檢查HTTP回應頭中的Server header值。
回應頭中的服務器頭值,如https://stackoverflow.com/a/32022511/12484。
為了讓 https.sys 接受更長的請求 URL 而不出現 HTTP 414 錯誤,在服務器 PC 的 Windows 注冊表中,在 ComputerHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTPParameters 中,創建一個 DWORD 型別的值,名稱為 MaxFieldLength,數值要足夠大,例如 65535。
- 參考資料。Windows 的 Http.sys 注冊表設定 。
更多資訊你可以參考這個鏈接。https://stackoverflow.com/a/34638320/13336642.
uj5u.com熱心網友回復:
我已經解決了。
414錯誤完全是一個紅鯡魚。
這是一個權限問題。
它是一個虛擬目錄的權限問題。它使用的是通過認證,這對.aspx頁面來說似乎很有效,但對任何其他檔案型別來說都是如此。
我現在已經指定了一個特定的用戶來連接,并且一切正常。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/319543.html
標籤:
