【问题标题】:Response Compression Middleware for ASP.NET Core ignored on AzureAzure 上忽略 ASP.NET Core 的响应压缩中间件
【发布时间】:2023-03-31 08:01:02
【问题描述】:

我有一个简单的 ASP.NET Core 应用程序,并在 Startup.cs 中添加了响应压缩中间件,以通过 gzip 压缩我的响应 - 超级简单。

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddResponseCompression();
        services.AddMvc();
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.UseResponseCompression();

        app.UseStaticFiles();
        app.UseMvc(routeBuilder =>
        {
            var defaults = new { controller = "Views", action = nameof(ViewsController.Index) };
            routeBuilder.MapRoute("default", "{controller}/{action}/{id?}", defaults);
            routeBuilder.MapSpaFallbackRoute("spa-fallback", defaults);
        });
    }

在我的本地机器上,当我从 Visual Studio 启动应用程序时,无论是 IISExpress 还是 Project Command,我的响应都被压缩了。

现在我使用 Visual Studio 中的 Publish-Command 将我的 ASP.NET Core 应用程序作为“Azure 应用程序服务”发布到 Azure,每个想法都像本地一样工作,只是压缩不是。

有人知道我错过了什么吗?

---更新---

好的,我用 Visual Studio 创建了一个空的 .Net Core Web 应用程序。我将 Startup.cs 编辑为如下所示,并将一个简单的 index.html 放在 wwwroot 文件夹中。比我右键单击项目并选择部署选项。我创建了一个包含新资源组、新计划和新 AppService 的新配置文件。

结果如下:http://gzipapptest.azurewebsites.net/index.html 但是 chrome/fiddler 节目没有 gzip - 可能是因为公司代理,你可以试试这个网站吗?

谢谢,iBot

    public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
    services.AddResponseCompression();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseResponseCompression();

    app.UseStaticFiles();
}

}

【问题讨论】:

  • 我发现它在您提供的站点中有效。我会更新我的答案。
  • 如果有用,请将其标记为答案,以帮助更多有相同问题的社区。​​span>

标签: asp.net azure-web-app-service


【解决方案1】:

我用你提到的代码对其进行了测试,它在我这边工作正常。很奇怪,你提到远程地址:127.0.0.1:8888. 如果可以的话,请尝试创建一个新的 WebApp 并部署它。

更新:

它也适用于您的 WebApp,您可以参考屏幕。如果您在响应标头中没有看到 gzip,我认为它是从缓存中接收到的。

从缓存中接收

【讨论】:

  • 感谢您的回复。远程地址看起来像这样,因为我在代理后面,但我也在没有代理的情况下进行了测试 - 没有区别。我还尝试创建一个新的 Azure App Service -> 同样的问题 :(
  • 尝试过使用新创建的 WebApp?如果可能的话,介意分享可以重现它的演示代码吗?
  • 我会尝试制作示例应用程序并复制它。如果问题仍然存在,那么我分享代码。
  • 谢谢汤姆,我相信我们的公司代理欺骗了我,我必须在没有任何代理设置的非公司 PC 上测试它。可能就像你说的那样一直有效。感谢您的努力
【解决方案2】:

我知道这是一个老问题,但是,如果其他人遇到此问题并且您在 IIS 上使用 ASP.NET Core In-Process Hosting 模型,您必须安装 Dynamic服务器管理器中的内容压缩功能 --> Web 服务器 --> 性能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多