OutputCache VaryByContentEncodings gzip不起作用

时间:2011-10-07 17:57:46

标签: c# asp.net caching encoding outputcache

我已将OutputCache设置为在我的ASP.net ASPX页面中包含'VaryByContentEncodings =“gzip”'。我希望页面提供不同的css文件,如果浏览器支持它则进行gzip压缩,如果浏览器不支持压缩则需要常规非压缩文件。

示例:

<%@ OutputCache Duration="320" VaryByParam="none" VaryByContentEncodings="gzip"  %>   

当我运行代码时,我收到以下错误:

页面中的'outputcache'指令不支持'varybycontentencodings'属性。

我不知道问题是什么以及为什么它不起作用。其次,你认为通过提供不同的gzip /非压缩CSS我做的是正确的。请注意,这些文件是从Amazon S3提供的,所以我不能依靠IIS或.NET引擎自动返回压缩文件。这就是我想要用来分离页面缓存版本的原因。

在这看起来似乎没问题,但它不起作用(使用ASP.NET 4.5):

http://msdn.microsoft.com/en-us/library/system.web.httpcachevarybycontentencodings.aspx

非常感谢帮助。

3 个答案:

答案 0 :(得分:6)

有趣的错误,我只是忘记了位置属性,因此我遇到了错误。但是,Microsoft将此代码放在他们的网站上,这使我认为此代码应该按原样运行。

http://msdn.microsoft.com/en-us/library/system.web.httpcachepolicy.varybycontentencodings.aspx

答案 1 :(得分:4)

  • 什么版本 你的app pool正在运行?
  • 指令是在页面,控件还是 母版?
  

VaryByContentEncodings是在.NET Framework版本中引入的   3.5。

HttpCachePolicy.VaryByContentEncodings Property

答案 2 :(得分:1)

我刚才有同样的问题。问题是 - Visual Studio intellisense建议您使用不正确的属性名称。正确的是“ VaryByContentEncoding ” - 最后还有“s”。

正确:

<%@ OutputCache ... VaryByContentEncodings="gzip"  %>

不正确:

<security-domain name="EmpMem" cache-type="default">
    <authentication>
        <login-module code="UsersRoles" flag="required">
            <module-option name="password-stacking" value="useFirstPass"/>
            <module-option name="usersProperties" value="app-users.properties"/>
            <module-option name="rolesProperties" value="app-roles.properties"/>
        </login-module>
        <login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required">
            <module-option name="password-stacking" value="useFirstPass"/>
            <module-option name="java.naming.provider.url" value="ldap://ha-adds-global.xxx.com:3268"/>
            <module-option name="bindDN" value="CN=prodjbsvc,OU=ServiceAccounts,OU=NOPOL,dc=eagle,dc=xxx,dc=com"/>
            <module-option name="bindCredential" value="XQtU@1lc"/>
            <module-option name="baseCtxDN" value="dc=eagle,dc=xxx,dc=com"/>
            <module-option name="baseFilter" value="(sAMAccountName={0})"/>
            <module-option name="rolesCtxDN" value="ou=COSAs,dc=eagle,dc=xxx,dc=com"/>
            <module-option name="roleFilter" value="(sAMAccountName={0})"/>
            <module-option name="roleAttributeID" value="memberOf"/>
            <module-option name="roleAttributeIsDN" value="true"/>
            <module-option name="roleNameAttributeID" value="cn"/>
            <module-option name="roleRecursion" value="-1"/>
            <module-option name="searchScope" value="SUBTREE_SCOPE"/>
            <module-option name="allowEmptyPasswords" value="false"/>
            <module-option name="java.naming.referral" value="follow"/>
        </login-module>
    </authentication>
</security-domain>