hello,
I handle TaskScheduler.UnobservedTaskException in Application_Start, and write to log by code:
TaskScheduler.UnobservedTaskException += (s, e) =>
{
e.SetObserved();
e.Exception.Handle(t =>
{
Logger.Error(t, "UnobservedTaskException");
return true;
});
};
Then when server in high load (about 3k connections opened), I sometimes receive logs, all of them are:
(>100 logs) System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Web.WebSockets.AspNetWebSocket'.
at System.Web.WebSockets.AspNetWebSocket.get_State()
at Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.IsClosedOrClosedSent(WebSocket webSocket)
at Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.<<CloseAsync>b__6>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNet.SignalR.Owin.OwinWebSocketHandler.<>c__DisplayClass1.<<RunWebSocketHandler>b__0>d__3.MoveNext()
(few logs) System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Web.WebSockets.AspNetWebSocket'.
at System.Web.WebSockets.AspNetWebSocket.get_State()
at Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.<<SendAsync>b__0>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNet.SignalR.Transports.WebSocketTransport.<PerformSend>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNet.SignalR.Transports.WebSocketTransport.<PerformSend>d__8.MoveNext()
(few logs) System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Web.WebSockets.AspNetWebSocket'.
at System.Web.WebSockets.AspNetWebSocket.get_State()
at Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.SendAsync(ArraySegment`1 message, WebSocketMessageType messageType, Boolean endOfMessage)
at Microsoft.AspNet.SignalR.WebSockets.DefaultWebSocketHandler.Flush()
at Microsoft.AspNet.SignalR.Transports.WebSocketTransport.<PerformSend>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNet.SignalR.Transports.WebSocketTransport.<PerformSend>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNet.SignalR.Messaging.Subscription.<Invoke>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNet.SignalR.Messaging.Subscription.<Work>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNet.SignalR.Messaging.MessageBroker.<DoWork>d__2.MoveNext()
(few logs) System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'System.Web.WebSockets.AspNetWebSocket'.
at System.Web.WebSockets.AspNetWebSocket.get_State()
at Microsoft.AspNet.SignalR.WebSockets.WebSocketHandler.SendAsync(ArraySegment`1 message, WebSocketMessageType messageType, Boolean endOfMessage)
at Microsoft.AspNet.SignalR.WebSockets.DefaultWebSocketHandler.Flush()
at Microsoft.AspNet.SignalR.Transports.WebSocketTransport.<PerformSend>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNet.SignalR.Transports.WebSocketTransport.<PerformSend>d__8.MoveNext()
Are they normal behavior? Should I need to care about them?
hello,
I handle
TaskScheduler.UnobservedTaskExceptioninApplication_Start, and write to log by code:Then when server in high load (about 3k connections opened), I sometimes receive logs, all of them are:
Are they normal behavior? Should I need to care about them?