IISHttpServer OnDisconnect NullReferenceException
IISHttpServer OnDisconnect NullReferenceException
虽然 运行 一个主要基于执行端点的 .NET Core Web 应用程序,但我经常在调用 [=14= 之后的 AbortIO
调用中得到 NullReferenceException
] 在我的代码中。
有人有什么想法吗?
例如下面的代码:
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/someurl", async context => {
context.Response.Redirect("/someotherurl", false);
});
});
这里经常出错,因为 context
为空:
private static void OnDisconnect(IntPtr pvManagedHttpContext)
{
IISHttpContext context = null;
try
{
context = (IISHttpContext)GCHandle.FromIntPtr(pvManagedHttpContext).Target;
context.AbortIO(clientDisconnect: true);
}
catch (Exception ex)
{
context?.Server._logger.LogError(0, ex, $"Unexpected exception in {nameof(IISHttpServer)}.{nameof(OnDisconnect)}.");
}
}
来源:Microsoft.AspNetCore.Server.IIS.Core.IISHttpServer,第 173 行
已由 .net 团队修复:https://github.com/dotnet/aspnetcore/issues/17516
虽然 运行 一个主要基于执行端点的 .NET Core Web 应用程序,但我经常在调用 [=14= 之后的 AbortIO
调用中得到 NullReferenceException
] 在我的代码中。
有人有什么想法吗?
例如下面的代码:
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/someurl", async context => {
context.Response.Redirect("/someotherurl", false);
});
});
这里经常出错,因为 context
为空:
private static void OnDisconnect(IntPtr pvManagedHttpContext)
{
IISHttpContext context = null;
try
{
context = (IISHttpContext)GCHandle.FromIntPtr(pvManagedHttpContext).Target;
context.AbortIO(clientDisconnect: true);
}
catch (Exception ex)
{
context?.Server._logger.LogError(0, ex, $"Unexpected exception in {nameof(IISHttpServer)}.{nameof(OnDisconnect)}.");
}
}
来源:Microsoft.AspNetCore.Server.IIS.Core.IISHttpServer,第 173 行
已由 .net 团队修复:https://github.com/dotnet/aspnetcore/issues/17516