我一直在开发一个从 SAFE 堆栈模板构建的项目,当我将其构建到 Docker 容器并在本地运行时,一切都成功运行。
使用 Azure WebApp for Container,容器成功附加和部署,并且我能够按预期从 URL 加载应用程序。 [服务器正在响应客户端应用程序]
问题是 WebSocket 在部署后就无法工作,但当我在本地运行容器时它们就可以正常工作。
我已经对所有这些进行了很多研究并尝试了很多不同的事情,但没有成功。我可以分享更多,但我主要是看看是否有人遇到过这种情况。
我确实运行了这个:
az webapp config set --web-sockets-enabled true --name MyAppName --resource-group MyResourceGroup
我可以确认默认情况下启用的 WebSockets 设置为 false,并且需要使用 CloudShell 将其设置为 true。
这令人沮丧,因为我无法获得以下内容之外的任何信息:
WebSocket connection to 'wss://xxx.azurewebsites.net/socket/init' failed: Error during WebSocket handshake: Unexpected response code: 503
我不想一开始就过度分享有关代码的细节,除非要求有帮助,因为在本地容器中运行时一切正常。它确实感觉很奇怪,像是与 Azure 设置相关的东西,或者可能是某种与端口相关的应用程序设置等。
此外,这确实感觉不是 SAFE-template 或 Elmish-Bridge 的一个方面,但任何使用 Docker 容器在 Azure 上成功部署此组合的人都可能对这个问题有直接的了解。它似乎比这个特定用法更广泛,但与 Azure 上的容器/Websocket 使用相关。
感谢任何帮助。谢谢。
最佳答案
运行 Linux 容器的 Azure WebApp 似乎不完全支持 WebSocket: https://github.com/aspnet/AspNetCore/issues/10370
关于用于容器 WebSocket 的 Azure WebApp 无法正常工作 - SAFE/ElmishBridge,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58794149/