[英]SignalR connect and start cause 404 error
我在搜索時找不到具體的答案,所以我在這里發布我的解決方案。
我們在SignalR上工作了很長時間,然后一些用戶在啟動時開始收到404錯誤,並將來自AngularJs / jQuery的調用連接到服務器。 談判可以正常工作,並返回200代碼。
事實證明,服務器端(ASP.NET 4.6.1)必須對URL的大小施加限制,而不是像您預期的那樣返回414(Request-URI Too Long),它必須截斷URL大約2,083的長度,仍然試圖處理它。 我假設404是SignalR集線器響應,因為現在截斷的字符串具有與預期不匹配的查詢字符串參數。 我們看到它是因為我們通過查詢字符串參數傳遞了一些自定義值和安全訪問令牌,這增加了大小。 訪問令牌是通過查詢字符串傳遞的,因為我們想使用websockets並且不存在websockets的頭文件。 當您向令牌添加更多屬性和角色時,它會增長,這使我們超出默認大小限制。
修復很容易。 只需更新您的服務器web.config以允許更長的URL。
<system.web> <httpRuntime targetFramework="4.5" maxRequestLength="30000000" maxUrlLength="40960" maxQueryStringLength="2097151" /> </system.web> <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="30000000" maxUrl="40960" maxQueryString="2097151" /> </requestFiltering> </security> </system.webServer>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.