具有 Angular 前端的 SignalR 在本地主机上工作,但不能远程工作
SignalR with Angular front-end works on localhost, but doesn't work remotely
我有两个 Azure Web 应用服务:前端(在 Angular 上编写)和后端(用 C# 和 SignalR 编写)。它们中的任何一个都放在自己的服务器上,我试图让前端连接到后端。以前,当我 运行 在本地主机上使用 http
时,一切都在本地工作,但是当我尝试在 Azure 上做完全相同的事情时(我将 localhost
替换为 azure 网站域),我得到Chrome 中的错误:
我看到 https
被 'wss' 取代了,我想这对 SignalR 来说不太好(因为如果 wss/ws 是,它应该回落到 https/https不可用,正如其中一位评论者所说)。所以显然我的前端看不到我的后端。
到目前为止我尝试过的:
- 将协议更改为
http
,与 localhost
的方式相同
- 设置后端监听
0.0.0.0:5000
- 在 Azure 设置中打开 Web 套接字(在客户端和服务器上)
我的问题是什么?如何将客户端连接到服务器端?谢谢。
您不应在应用服务上使用端口 5000。配置您的应用程序,使其在部署时仅使用默认端口(有效端口 80 和 443)。 WSS/SignalR 在这些默认端口上工作正常。
您还可以看到list of exposed ports。
我有两个 Azure Web 应用服务:前端(在 Angular 上编写)和后端(用 C# 和 SignalR 编写)。它们中的任何一个都放在自己的服务器上,我试图让前端连接到后端。以前,当我 运行 在本地主机上使用 http
时,一切都在本地工作,但是当我尝试在 Azure 上做完全相同的事情时(我将 localhost
替换为 azure 网站域),我得到Chrome 中的错误:
我看到 https
被 'wss' 取代了,我想这对 SignalR 来说不太好(因为如果 wss/ws 是,它应该回落到 https/https不可用,正如其中一位评论者所说)。所以显然我的前端看不到我的后端。
到目前为止我尝试过的:
- 将协议更改为
http
,与localhost
的方式相同
- 设置后端监听
0.0.0.0:5000
- 在 Azure 设置中打开 Web 套接字(在客户端和服务器上)
我的问题是什么?如何将客户端连接到服务器端?谢谢。
您不应在应用服务上使用端口 5000。配置您的应用程序,使其在部署时仅使用默认端口(有效端口 80 和 443)。 WSS/SignalR 在这些默认端口上工作正常。
您还可以看到list of exposed ports。