Search code examples
asp.net-coreazure-service-fabricasp.net-core-signalr

SignalR ASP.NET Core on Service Fabric Fails with HTTP 410 GONE


I have followed the instructions here and here to setup SignalR in a ASP.NET Core web app. Then replicated the same code in a Service Fabric ASP.NET Core service only to find that the 100% working code when hosted outside of service fabric did not work when hosted on Service Fabric. When I open the html client included in both of these samples and turn on developer tools in the browser I see what appears to be the WebSocket handshake failing with HTTP 410 GONE errors.

In the Service Fabric documentation for ASP.NET CORE I found that the ServiceFabric Middleware can return HTTP 410 GONE if the identifier that validates each request does not match. But I guess I don't understand the inner workings of SignalR to know how to properly configure Service Fabric to unblock this.

I am running on a local single node cluster so I figured that I wouldn't have any issues until I needed to do multi-node cluster deployment, at which point I would need to figure out the SignalR backplane I'm going to use.

enter image description here

Any idea what would cause this to be?


Solution

  • I needed to disable Service Fabric Integration in the WebHost Builder. Simply replacing this:

    .UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.UseUniqueServiceUrl)
    

    with this:

    .UseServiceFabricIntegration(listener, ServiceFabricIntegrationOptions.None)
    

    allowed it to start working.