Put MapMcp in Microsoft.AspNetCore.Builder namespace (#171)

* Still dispose McpSession when MessageProcessingTask throws non-OCE exceptions

* Put MapMcp in icrosoft.AspNetCore.Builder namespace
This commit is contained in:
Stephen Halter 2025-03-31 14:35:28 -07:00 • committed by GitHub
commit 57a526ec30
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -94,25 +94,30 @@ internal abstract class McpJsonRpcEndpoint : IAsyncDisposable
{
_logger.CleaningUpEndpoint(EndpointName);
if (_sessionCts is not null)
try
{
await _sessionCts.CancelAsync().ConfigureAwait(false);
}
if (MessageProcessingTask is not null)
{
try
if (_sessionCts is not null)
{
await MessageProcessingTask.ConfigureAwait(false);
await _sessionCts.CancelAsync().ConfigureAwait(false);
}
catch (OperationCanceledException)
if (MessageProcessingTask is not null)
{
// Ignore cancellation
try
{
await MessageProcessingTask.ConfigureAwait(false);
}
catch (OperationCanceledException)
{
// Ignore cancellation
}
}
}
_session?.Dispose();
_sessionCts?.Dispose();
finally
{
_session?.Dispose();
_sessionCts?.Dispose();
}
_logger.EndpointCleanedUp(EndpointName);
}