iis7压缩来自自定义处理程序的动态内容

Mal*_*loc 5 compression iis-7 dynamic httphandler

我无法从IIS 7压缩来自自定义处理程序的动态内容.

我们的处理程序吐出json数据(Content-Type:application/json; charset = utf-8)并响应url,如下所示:domain.com/example.mal/OperationName?Param1=Val1&Param2=Val2

在IIS 6中,我们所要做的就是编辑MetaBase.xml,并在IIsCompressionScheme元素中确保HcScriptFileExtensions属性包含自定义扩展名"mal".

静态和动态压缩在服务器和网站级别进行.我可以确认正常的.aspx页面是否正确压缩.我无法压缩的唯一内容是来自自定义处理程序的内容.

我尝试过以下配置但没有成功:

<handlers>
  <add name="MyJsonService" verb="GET,POST" path="*.mal" type="Library.Web.HttpHandlers.MyJsonServiceHandlerFactory, Library.Web" />
</handlers>

<httpCompression>
  <dynamicTypes>
    <add mimeType="application/json" enabled="true" />
  </dynamicTypes>
</httpCompression>
Run Code Online (Sandbox Code Playgroud)

_

<httpCompression>
  <dynamicTypes>
    <add mimeType="application/*" enabled="true" />
  </dynamicTypes>
</httpCompression>
Run Code Online (Sandbox Code Playgroud)

_

<staticContent>
  <mimeMap fileExtension=".mal" mimeType="application/json" />
</staticContent>
<httpCompression>
  <dynamicTypes>
    <add mimeType="application/*" enabled="true" />
  </dynamicTypes>
</httpCompression>
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

Mal*_*loc 5

看起来它是IIS压缩中的一个错误.我需要将以下行添加到applicationHost.config文件(在httpCompression下)而不是web.config

        <dynamicTypes>
            <add mimeType="application/json; charset=utf-8" enabled="true" />
        </dynamicTypes>
Run Code Online (Sandbox Code Playgroud)

从这里找到了一些额外的帮助:http://forums.iis.net/p/1162828/1925766.aspx

  • +1,但你应该提到`charset = utf-8`所产生的差异,因为你链接到的线程中提到的IIS解析错误是必需的 (2认同)