【发布时间】:2017-02-09 01:31:06
【问题描述】:
我开发了相同的应用程序,它在 2 个不同的项目中提供 JSON 文件。一种基于 ASP.Net MVC4,另一种基于 ASP.Net Core 1.1.0。 我的控制器生成的 JSON 大小约为 5MB。
但是,在发布这 2 个应用程序时,如果在两个平台上压缩或未压缩此文件,我的大小会有所不同。
对于 ASP.Net Core,我也试过在 Startup.cs 中启用压缩中间件,看看有什么区别:
services.AddResponseCompression(
options =>
options.MimeTypes = ResponseCompressionMimeTypes.Defaults);
app.UseResponseCompression()
.UseStaticFiles();
这是我对返回给客户端的原始 5Mo JSON 的测试摘要:
在 Visual Studio 上运行,我的 JSON 大小在:
MVC4:5MB
ASP.Net Core 默认:1.3MB
压缩后的 ASP.Net 内核:869KB
在启用了动态和静态压缩的本地 IIS Express 上,我的 JSON 大小为:
MVC4:256KB
ASP.Net Core 默认:1.3MB
压缩后的 ASP.Net 内核:869KB
在启用了动态和静态压缩的生产 IIS 服务器上,我的 JSON 大小为:
MVC4:136KB
ASP.Net Core 默认:675KB
压缩后的 ASP.Net 内核:869KB
所以我们可以看到,对于 MVC4,我们在生产中从一个未压缩的文件变成了一个高度压缩的文件。
对于 ASP.Net Core,当在 Startup.cs 中启用压缩时,文件的大小是恒定的,但不会尽可能小。
对于 ASP.Net Core,当 Startup.cs 中未启用压缩时,文件默认为 gzip,但我不确定它是否使用了 IIS 服务器的压缩功能。
我的问题是如何在 ASP.Net Core 中获得一个压缩的 JSON,与我在基于 MVC4 的旧平台上获得的一样小。
谢谢
西尔万
【问题讨论】:
-
Mo 和 Ko 是什么单位?这些应该是 Mb 和 Kb 吗?
-
是的,没错。帖子已编辑。
-
Compression 有几个设置来优化速度、CPU 效率、流媒体等。核心中的默认值对 CPU 和流媒体更有效,但会产生稍大的输出。尝试重新配置它。
标签: iis asp.net-core compression