Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net IIS 7.5在应用程序web.config中设置时不压缩JSON_.net_Asp.net Mvc 3_Iis 7.5_Windows Server 2008 R2 - Fatal编程技术网

.net IIS 7.5在应用程序web.config中设置时不压缩JSON

.net IIS 7.5在应用程序web.config中设置时不压缩JSON,.net,asp.net-mvc-3,iis-7.5,windows-server-2008-r2,.net,Asp.net Mvc 3,Iis 7.5,Windows Server 2008 R2,我一直致力于从我们的一个MVC3站点启用JSON压缩。从我读过的各种文章来看,似乎我应该能够设置应用程序/json;charset=utf-8applications web.config文件中的MIME类型。但这样做并不能实现压缩。但是,当添加到applicationhost.config文件时,它可以工作。我是不是遗漏了什么 My application web.config中添加了以下内容: <httpCompression directory="%SystemDrive%\inet

我一直致力于从我们的一个MVC3站点启用JSON压缩。从我读过的各种文章来看,似乎我应该能够设置
应用程序/json;charset=utf-8
applications web.config文件中的MIME类型。但这样做并不能实现压缩。但是,当添加到applicationhost.config文件时,它可以工作。我是不是遗漏了什么

My application web.config中添加了以下内容:

<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
    <dynamicTypes>
        <add mimeType="application/javascript; charset=utf-8" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/json; charset=utf-8" enabled="true" />
    </dynamicTypes>
    <staticTypes>
        <add mimeType="application/javascript; charset=utf-8" enabled="true" />
        <add mimeType="application/x-javascript" enabled="true" />
        <add mimeType="application/json" enabled="true" />
        <add mimeType="application/json; charset=utf-8" enabled="true" />
    </staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true" />

服务器正在运行带有IIS7.5的Windows server 2008 R2。我还为相关站点安装并启用了动态压缩


非常感谢您的帮助,因为我不希望为整个服务器启用JSON压缩。

HttpCompression
部分在
ApplicationHost.config
中定义了
AppHostOnly
,这将阻止您在web.config中设置其属性


压缩模块仅从“ApplicationHost.config”读取服务器级属性,因此即使您使用
appcmd
overrideModeDefault=“Allow”
)解锁该节,较低级别的设置也将被忽略。

谢谢,它消除了混淆。事实证明,即使您向ApplicationHost.config添加了一个元素,以便站点尝试并允许在站点级别进行HttpCompression,但由于AppHostOnly属性,它仍会保持锁定状态。唯一的方法是将application/json MIME类型添加到ApplicationHost.config中的“global”部分,从而为服务器上的所有站点启用该类型。@tpeczek
压缩模块仅从“ApplicationHost.config”读取服务器级属性。
您有相关的源代码吗?我找不到任何来自微软的官方信息,尽管看起来确实如此,尤其是IIS8+请看这篇文章:stackoverflow.com/a/7634875/1131855我无法通过Notepad++编辑applicationHost.config。这个链接建议使用一个控制台命令,这对我很有用