From b24ed8a8526da18b8bdae343ca649796cc58e52d Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Tue, 15 Jul 2014 12:55:14 -0700 Subject: [PATCH] Bump the ConnectionsDisconnected PC even when OnDisconnected throws --- .../Transports/TransportDisconnectBase.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Microsoft.AspNet.SignalR.Core/Transports/TransportDisconnectBase.cs b/src/Microsoft.AspNet.SignalR.Core/Transports/TransportDisconnectBase.cs index 64fcb07bed..b05594bef4 100644 --- a/src/Microsoft.AspNet.SignalR.Core/Transports/TransportDisconnectBase.cs +++ b/src/Microsoft.AspNet.SignalR.Core/Transports/TransportDisconnectBase.cs @@ -283,8 +283,13 @@ private Task Abort(bool clean) var disconnectTask = Disconnected != null ? Disconnected(clean) : TaskAsyncHelper.Empty; // Ensure delegate continues to use the C# Compiler static delegate caching optimization. - return disconnectTask.Catch((ex, state) => OnDisconnectError(ex, state), Trace) - .Then(counters => counters.ConnectionsDisconnected.Increment(), _counters); + return disconnectTask + .Catch((ex, state) => OnDisconnectError(ex, state), Trace) + .Finally(state => + { + var counters = (IPerformanceCounterManager)state; + counters.ConnectionsDisconnected.Increment(); + }, _counters); } public void ApplyState(TransportConnectionStates states)