В настоящее время мы оцениваем, нужно ли переносить наши Azure веб-приложения для запуска на Linux плане обслуживания приложений (в основном потому, что это дешевле, чем на Windows плане обслуживания). Мы обнаружили, что приложение работает на Kestrel, а не на IIS.
Одно из основных различий между ними заключается в том, что IIS обеспечивает сжатие ответов из коробки, а Kestrel - нет. Microsoft предоставляет Middleware Compression Compression , но я не знаю, как включить его только при работе на Kestrel и при использовании встроенного сжатия при запуске IIS.
Концептуально, я хотел бы иметь возможность написать что-то подобное в моем Startup.cs
:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
if (IsKestrel())
services.AddResponseCompression();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (IsKestrel())
app.UseResponseCompression();
}
public bool IsKestrel()
{
// How to achieve this?
}
}
Я видел Проверьте, является ли сервер хостинга IIS или Kestrel во время выполнения в качестве pnet core , но мне было интересно, есть ли лучший способ сделать это в классе Startup.cs
.