我们的应用程序使用Service Fabric作为其骨干,而我们的微服务是Service Fabric Services。在前端使用Lighthouse进行了一些审核之后,我看到列出了对enable text based compression
的建议,并开始研究如何将gzip
添加到某些响应中。
对于我们的Node服务器,我只是添加了compression
中间件并使用了它。
对于其他服务,我进入了Web.config
并添加了以下内容:
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
<httpCompression>
<dynamicTypes>
<clear />
<add enabled="true" mimeType="application/json"/>
</dynamicTypes>
<staticTypes>
<clear />
<add enabled="true" mimeType="application/json"/>
</staticTypes>
</httpCompression>
重新加载我的Web应用程序后,我确实注意到响应现在已经压缩,但是我不想压缩所有响应。
设置任何端点时,请遵循以下格式:
[HttpGet]
[Route("{customer}/items")]
[Authorize]
public Task<ItemsModel> Get()
{
return _itemsService.GetAsync();
}
有没有一种方法可以启用基于端点的压缩而不是基于服务的压缩?
答案 0 :(得分:0)
这是过程;
<Startup> <Task commandLine="EnableCompression.cmd" executionContext="elevated" taskType="simple"></Task> </Startup>
在您的网络角色中,创建一个文本文件并将其保存为“ EnableCompression.cmd”
EnableCompression.cmd应包含以下内容:
%windir%\system32\inetsrv\appcmd set config /section:urlCompression /doDynamicCompression:True /commit:apphost
%windir%\system32\inetsrv\appcmd set config -section:system.webServer/httpCompression /+"dynamicTypes.[mimeType='application/json; charset=utf-8',enabled='True']" /commit:apphost
此简单过程将为Azure中Web角色返回的json启用动态压缩。
来源:https://cloudmonix.com/blog/how-to-enable-gzip-http-compression-on-windows-azure-endpoint/
您还可以看到以下内容:
https://code.i-harness.com/en/q/2a58dd
How to enable gzip HTTP compression on Windows Azure dynamic content