繁体   English   中英

SignalR连接并启动导致404错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM