我有一个asp.net core 2.1 Web应用程序,它作为独立的应用程序部署到Ubuntu 18.04 LAMP服务器。
有一个用SignalR创建的聊天页面,在localhost上一切正常。
但是,当我连接到http://www.limboworld.net / real网站/ 并转到“聊天”页面并使用开发人员工具检查控制台,我将看到以下内容:
https://drive.google.com/open?id=12JxhgoDtpXwrMFX7Z5oJ6MlkpkuN0How
点击链接http://www.limboworld.net/hubs/chat?id=8rE5uw4Ck9PIpoaCF_KuMA时,我得到“该ID无效”。
根据http://httpd.apache.org/docs/2.4/mod/mod_proxy_wstunnel.html,我尝试添加
ProxyPass "/ws2/" "ws://echo.websocket.org/"
指令,但我不确定是什么原因引起的。
也许我的代码有问题,这就是为什么即使我只尝试配置Apache也将其发布在这里的原因。
有人可以帮我删除Chrome开发者工具控制台中的错误消息吗?
感谢您提供任何有关为什么此功能无效的帮助。
答案 0 :(得分:0)
正如我在上面的评论中所述,根据以下链接更改apache配置后:https://community.bitwarden.com/t/websocket-fails-behind-apache-proxy/3696/3,如下所示:
<VirtualHost *:80>
RewriteEngine On
ProxyPreserveHost On
ProxyRequests Off
# allow for upgrading to websockets
RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:5000/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*) http://127.0.0.1:5000/$1 [P,L]
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
ProxyPass /hubs/chat ws://127.0.0.1:5000/hubs/chat
ProxyPassReverse /hubs/chat ws://127.0.0.1:5000/hubs/chat
</VirtualHost>
浏览器正在连接到网络套接字。
现在我遇到了另一个错误:signalr.min.js:13 Error: Connection disconnected with error 'Error: Websocket closed with status code: 1006 ()'.
本文:http://blog.etrupja.com/2018/08/the-antiforgery-token-could-not-be-decrypted/帮助我解决了问题。
我必须使用命令Install-Package Serilog.Extensions.Logging.File
安装一个nuget软件包,然后
将以下代码添加到Startup.cs文件中:
ConfigureServices(IServiceCollection services)
{
//your code here
services.AddDataProtection()
.SetApplicationName("your-app-name")
.PersistKeysToFileSystem(new DirectoryInfo("your-path-here"));
//your code here
}
这有效地消除了Chrome开发者工具控制台中的所有错误。
我希望这可以帮助遇到类似问题的人。
干杯!