private void HandleSessionAsynchronously(Task sessionTask, Connection connection, ISession session)
{
sessionTask.ContinueWith(f =>
{
if (f.IsFaulted)
{
var exception = f.Exception.InnerException;
_log.LogException(new LogEvent()
{
LogLevel = LogLevel.Error,
EventType = LogEventType.Application,
Message = exception.Message,
RemoteEndpoint = connection.RemoteEndpoint,
SessionId = connection.SessionId,
Protocol = session.Protocol.ToString()
}, exception);
}
SessionManager.DecreaseSessionCount(session.Protocol);
// Session has ended.
connection.Dispose();
});
}