Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
信号器:WebSocket握手期间出错:意外响应代码:400_Websocket_Signalr - Fatal编程技术网

信号器:WebSocket握手期间出错:意外响应代码:400

信号器:WebSocket握手期间出错:意外响应代码:400,websocket,signalr,Websocket,Signalr,我刚开始和信号员一起工作。我已经使用Signal在我的站点上实现了实时数据反射。尝试连接Web套接字时,控制台上出现“Web套接字握手期间出错:意外响应代码:400”错误 应用程序是使用Asp.net MVC-signalR 2.0.3开发的,托管在Windows server 2012-IIS 8上 我从中找到了一个解决方案 它说,我们需要网站指向HTTPS(和可用SSL),然后http才能使用web套接字。我的问题也解决了。我的疑问是-我们不能不使用HTTPS解决这个问题吗?由于每个网站可能

我刚开始和信号员一起工作。我已经使用Signal在我的站点上实现了实时数据反射。尝试连接Web套接字时,控制台上出现“Web套接字握手期间出错:意外响应代码:400”错误

应用程序是使用Asp.net MVC-signalR 2.0.3开发的,托管在Windows server 2012-IIS 8上

我从中找到了一个解决方案


它说,我们需要网站指向HTTPS(和可用SSL),然后http才能使用web套接字。我的问题也解决了。我的疑问是-我们不能不使用HTTPS解决这个问题吗?由于每个网站可能不需要托管在HTTPS(需要SSL)上。

如果问题是从客户端到服务器的路径中存在代理,那么除了向提供商(客户端和服务器)投诉之外,您别无选择


通过使用安全连接,您可以确保没有代理会干扰您的连接。

在web.config文件中使用此标记:

<httpRuntime maxRequestLength="40960" targetFramework="4.5" requestValidationMode="2.0" />

标记下。
描述您的目标框架。错误将消失

如果您在负载平衡器后面的多台服务器上运行,也可能发生此错误。检查400响应的主体(例如,使用Fiddler)并查看是否发现:
连接ID的格式不正确。如果是这样,那么您的问题可能是您没有在每个应用服务器上使用相同的机器密钥


有关解决方案的详细信息,请参见此答案:

如果您落后于Nginx,请添加以下三行(以
proxy\uu
开头的行):


HTTPS/HTTP不是问题所在。WSS将自动在HTTPS页面上使用,WS将在HTTP上使用,无需任何手动设置。

我在使用Angular 8前端的.Net Core Web API中遇到了相同的问题。我的问题是服务器上没有安装Websocket协议。从服务器管理器->添加角色和功能安装了它,它成功了


当WebSocket通过SSL(WSS)连接时,您的网站可能通过HTTP提供服务。这是一个正常的/有效的方案…我的请求只指向ws://*而不是控制台中显示的wss://*嗯,我不知道信号器如何工作,但我知道可以通过HTTP和SSL为HTML和websocket提供服务器…@DanielMinnaar,当然!因为微软。这对我也适用。离子+.Net内核+信号器应用
server {       
    listen       443; # Or 80 or whatever
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    ...
}