azure - Azure Service Fabric 上的 Signalr 问题:WebSocket 握手期间出错
问题描述
我们使用 Service Fabric 来托管我们的消息传递服务 ASP.NET Core Web API(利用 signalr)和作为客户端的 React Web 应用程序。一切都在本地机器上按预期工作,但在 Azure 上却不行。我们已经为跨域处理配置了 CORS 策略,因为服务和 Web 应用程序托管在不同的服务器上。在负载均衡器中配置粘性会话。此 CORS 策略适用于本地计算机,服务和客户端托管在不同的端口上。
在 Azure 上托管应用程序后,我在浏览器控制台中收到错误消息
WebSocket 握手期间出错:意外的响应代码:500
解决方案
由于 CORS,这个问题很可能会发生。
查看您提供的屏幕截图,可能会看到 CORS 异常,并且您知道,调用 SignalR 服务的前端应用程序托管在不同的位置(域相同但端口不同)。
您应用的 CORS 设置可能不起作用。
你有两个解决方案:
- 在 ASP.NET CORE 中配置CORS,以便 SignalR 可以接受来自其他域的调用。
- 将两者托管在同一域 + 端口上以避免 CORS
推荐阅读
- r - 使用 R 中的 tmap 包中的 tm_bubbles() 创建饼图
- python - PyQt 小部件边框颜色透明 - 但按钮在正常边框内
- python - 使用python访问firebase对象并获取'DatetimeWithNanoseconds'对象没有属性'ToDatetime'
- php - Wordpress - 您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展
- python - 使用 np.select / ValueError 获取小于 x 的第一个值:-1 不在范围内
- java - 如何从 MySQL 表中获取值并设置到我在 java 中创建的类的数组列表中?
- symfony - 如何构建一个 Doctrine 查询来查找缺少特定类型的 OneToMany 关系的元素?
- r - R根据组和多列条件创建新变量
- php - Codegniter 4.0.0 中的 PHPMailer
- ruby-on-rails - 在 Rails 中创建动态属性和 CSS 类