微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

azure 应用服务中的 Signalr 不适用于 websockets

如何解决azure 应用服务中的 Signalr 不适用于 websockets

我有一个客户端(angular)应用程序服务和一个 api(net core 3.1)应用程序服务,我试图通过信号器相互通信。它在带有 websocket 的本地主机上运行良好,但在 azure 应用程序服务上它只适用于长轮询传输模式,即使我在配置中启用了 websocket。协商返回 200 与 connectionId 和所有三个 availableTransports。但是wss请求返回404如下图。

SELECT pagetitle as Action,Title as MainTitle,FROM QoQueries
ORDER BY pageTitle asc

我已经尝试查看大量资源和文档来解决这个问题,因此感谢您提供任何帮助。这是我的配置:

在startup.cs中

WebSocket connection to 'wss://xxxx.azurewebsites.net/notifications?id=ZI0-a_p5G6YziWhCxxc7Kg&access_token=eyJhbGc.. Failed: Error during WebSocket handshake: Unexpected response code: 404 
Utils.js:218 [2021-03-25T18:21:13.045Z] Error: Failed to start the transport 'WebSockets': Error: There was an error with the transport.

在客户端

options.AddPolicy(MyAllowSpecificOrigins,builder =>
                    {
                        builder.WithOrigins("https://xxxxx-dev.azurewebsites.net").AllowAnyMethod().AllowAnyHeader().AllowCredentials();
                        builder.WithOrigins("http://localhost:4200").AllowAnyMethod().AllowAnyHeader().AllowCredentials();

                    });

....

            services.AddControllers();
            services.AddSignalR();

....
           app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapHub<NotificationHub>("/notifications");
            });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。