我很难让IIS 7正确压缩来自ASP.NET MVC的Json结果.我在IIS中启用了静态和动态压缩.我可以向Fiddler验证正常的text/html和类似的记录是否被压缩.查看请求时,会出现accept-encoding gzip标头.响应具有mimetype"application/json",但未压缩.
我发现问题似乎与MimeType有关.当我包含时mimeType="*/*"
,我可以看到响应是正确的gzip压缩.如何在不使用通配符mimeType的情况下使用IIS进行压缩?我假设这个问题与ASP.NET MVC生成内容类型头的方式有关.
CPU使用率远低于动态限制阈值.当我从IIS检查跟踪日志时,我可以看到它由于找不到匹配的mime类型而无法压缩.
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files" noCompressionForProxies="false">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/json" enabled="true" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="application/json" enabled="true" />
</staticTypes>
</httpCompression>
Run Code Online (Sandbox Code Playgroud) 我有一个Silverlight 4应用程序,它可以从对许多控件的本机鼠标滚轮支持中获益.承载应用程序的页面具有HTML驱动的下拉菜单,该菜单通常会覆盖Silverlight控件.
在IE中,我必须启用无窗口模式以允许覆盖菜单正常工作(Firefox 3.6在没有它的情况下正常工作).但是,启用无窗口模式可防止Firefox支持鼠标滚轮事件,而无需在HTML DOM桥接器周围进行额外编码.
有什么方法可以告诉哪些浏览器需要无窗口,哪些浏览器没有它?理想情况下,我想使用HttpBrowserCapabilities信息来决定是否将属性设置为true,而不是硬编码"支持的"浏览器列表.