Iis 无法将响应标头连接设置为";“关闭”;在aspnet core 2.2中
我有一个场景,我想优雅地关闭一个aspnet核心web服务器。我们的想法是,在某一点设置响应头连接:关闭,然后当没有更多打开的连接时,web服务器关闭 我们通过中间件添加头部。其他标题添加得很好,但连接似乎无法更改。 我们在aspnet 4.7中也做了类似的事情,在该应用程序中,使用ActionFilterAttribute将响应头设置为close很好 我使用fiddler查看标题是否在那里,但它也没有显示在那里 无法在aspnet core 2.2中的响应中设置连接头吗Iis 无法将响应标头连接设置为";“关闭”;在aspnet core 2.2中,iis,.net-core,header,asp.net-core-2.2,kestrel-http-server,Iis,.net Core,Header,Asp.net Core 2.2,Kestrel Http Server,我有一个场景,我想优雅地关闭一个aspnet核心web服务器。我们的想法是,在某一点设置响应头连接:关闭,然后当没有更多打开的连接时,web服务器关闭 我们通过中间件添加头部。其他标题添加得很好,但连接似乎无法更改。 我们在aspnet 4.7中也做了类似的事情,在该应用程序中,使用ActionFilterAttribute将响应头设置为close很好 我使用fiddler查看标题是否在那里,但它也没有显示在那里 无法在aspnet core 2.2中的响应中设置连接头吗 public clas
public class ResponseHeaderMiddleware
{
private readonly RequestDelegate _next;
private readonly IConfig _config;
public ResponseHeaderMiddleware(RequestDelegate next, IConfig config)
{
_next = next;
_config = config;
}
public async Task InvokeAsync(HttpContext context)
{
context.Response.OnStarting(state =>
{
var httpContext = (HttpContext)state;
if (_config.HttpSendConnectionClose)
{
httpContext.Response?.Headers.Add("Connection", new string[] { "close" });
}
//Header that is added just fine.
httpContext.Response.Headers.Add("Site", "Simple-Talk");
return Task.FromResult(0);
}, context);
await _next.Invoke(context);
}
你能告诉我你中间线的图标是什么吗?我发现您首先检查了_config.HttpSendConnectionClose。我猜_config.HttpSendConnectionClose的结果是false,因此它没有添加连接头。我建议您可以尝试设置一个断点来调试它。它只是一个注入的服务,当我们要添加连接:close头时,HttpSendConnectionClose布尔值被设置为true。如果我们在同一If子句中设置了任何其他随机头,它会出现在响应中。我没有在IIS上使用进程内托管,当我更改为时,该头似乎出现了。您能告诉我有关您的服务器的更多详细信息吗?您是否使用服务托管asp.net核心应用程序或其他内容?我已经在IIS上运行了测试,它包含连接头。您能告诉我您的middlewire中的IConfig是什么吗?我发现您首先检查了_config.HttpSendConnectionClose。我猜_config.HttpSendConnectionClose的结果是false,因此它没有添加连接头。我建议您可以尝试设置一个断点来调试它。它只是一个注入的服务,当我们要添加连接:close头时,HttpSendConnectionClose布尔值被设置为true。如果我们在同一If子句中设置了任何其他随机头,它会出现在响应中。我没有在IIS上使用进程内托管,当我更改为时,该头似乎出现了。您能告诉我有关您的服务器的更多详细信息吗?您是否使用服务托管asp.net核心应用程序或其他内容?我已经在IIS上运行了测试,它包含连接头。