SignalR ASP.NET Service Fabric 上的核心因 HTTP 410 GONE 而失败
SignalR ASP.NET Core on Service Fabric Fails with HTTP 410 GONE
我已按照说明 here and here 在 ASP.NET 核心网络应用程序中设置 SignalR。然后在 Service Fabric ASP.NET Core 服务中复制了相同的代码,结果发现托管在 Service Fabric 外部时 100% 工作的代码在托管在 Service Fabric 上时不起作用。当我打开这两个示例中包含的 html 客户端并在浏览器中打开开发人员工具时,我看到似乎是 WebSocket 握手失败并出现 HTTP 410 GONE 错误。
在 ASP.NET CORE 的 Service Fabric 文档中,我发现如果验证每个请求的标识符不匹配,ServiceFabric 中间件可以 return HTTP 410 GONE。但我想我不了解 SignalR 的内部工作原理,不知道如何正确配置 Service Fabric 来解除阻止。
我 运行 在一个本地单节点集群上,所以我认为在我需要进行多节点集群部署之前我不会有任何问题,此时我需要弄清楚我要用的SignalR背板
知道是什么原因造成的吗?
我需要在 WebHost Builder 中禁用 Service Fabric Integration。简单地替换这个:
.UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.UseUniqueServiceUrl)
有了这个:
.UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.None)
允许它开始工作。
我已按照说明 here and here 在 ASP.NET 核心网络应用程序中设置 SignalR。然后在 Service Fabric ASP.NET Core 服务中复制了相同的代码,结果发现托管在 Service Fabric 外部时 100% 工作的代码在托管在 Service Fabric 上时不起作用。当我打开这两个示例中包含的 html 客户端并在浏览器中打开开发人员工具时,我看到似乎是 WebSocket 握手失败并出现 HTTP 410 GONE 错误。
在 ASP.NET CORE 的 Service Fabric 文档中,我发现如果验证每个请求的标识符不匹配,ServiceFabric 中间件可以 return HTTP 410 GONE。但我想我不了解 SignalR 的内部工作原理,不知道如何正确配置 Service Fabric 来解除阻止。
我 运行 在一个本地单节点集群上,所以我认为在我需要进行多节点集群部署之前我不会有任何问题,此时我需要弄清楚我要用的SignalR背板
知道是什么原因造成的吗?
我需要在 WebHost Builder 中禁用 Service Fabric Integration。简单地替换这个:
.UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.UseUniqueServiceUrl)
有了这个:
.UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.None)
允许它开始工作。