I am creating a web app using ASP.Net that is utilizing SignalR for client communication.
Whenever my client side code attempts to Close a HubConnection
instance, using either the .Stop()
method or wrapping the HubConnection
in a using block, the server starts throwing System.Net.WebSockets.WebSocketsException
s.
My server is being hosted by Visual Studio using IIS Express, and I have tried client code in both Linqpad and as a stand-alone exe. Both clients produced the same server exceptions.
My client side code (with unnecessary details removed) looks like this
async Task Main()
{
var signalServerLocation = "http://localhost:5462/signalr";
using (var hubConnection = new HubConnection(signalServerLocation))
{
await hubConnection.Start();
}
}
The exception that gets raised looks like this
System.Net.WebSockets.WebSocketException occurred
HResult=0x800703E3
Message=The I/O operation has been aborted because of either a thread exit or an application request
Source=System.Web
with a stack trace of
at System.Web.WebSockets.WebSocketPipe.<>c__DisplayClass9_0.<ReadFragmentAsync>b__0(Int32 hrError, Int32 cbIO, Boolean fUtf8Encoded, Boolean fFinalFragment, Boolean fClose)
This exception is non-fatal so it doesn't crash my server, but continuing through it leads to more exceptions of the same type being thrown, as well as System.OperationCancelledException
s with the description of The operation was cancelled
.
I've searched around a bit but couldn't find a straight answer as to why this happens.
So my question is this. Is there something I can do to stop these Exceptions from being thrown, or are they expected? Is there a problem with the way I am connecting?
User contributions licensed under CC BY-SA 3.0