2017-11-10 13 views
0

から欠落Varyヘッダ!MVC asp.net OutputCacheは応答

Response.Cache.SetCacheability(HttpCacheability.Public)Response.Cache.VaryByHeaders["someValue"] = true;に問題がありますが、です。 web.configファイルとコントローラを使用した場合someValueの

同じ問題

が有効= "true" の期間= "3600" varyByParam = "*" varyByHeader = "someValueのを" 名前= "myCacheProfile" を追加属性:それを返しますがヴァリlocation = "Downstream" Varyヘッダーを送信して送信します。

add name = "myCacheProfile" enabled = "true" duration = "3600" varyByParam = "*" varyByHeader = "someValue" location = "クライアント"は機能しません!

答えて

0

あなたのwannaの使用カスタム値ならば、あなたがGlobal.asax.csファイルに上書きを行う必要があります。

public override string GetVaryByCustomString(HttpContext context, string custom) 
     { 
      if (!string.IsNullOrEmpty(custom) && context != null && context.Request != null) 
      {     
       HttpRequest req = context.Request; 

       switch (custom.ToUpper()) 
       { 
        case "someValue": 
         return req.someValue; 
        case "USER-AGENT": 
         if (req.UserAgent != null && req.Browser != null) 
          return req.UserAgent.ToString() + "-" + req.Browser.IsMobileDevice.ToString() + "-" + req.Browser.Platform; 
         else 
          return base.GetVaryByCustomString(context, custom); 
        default: 
         return base.GetVaryByCustomString(context, custom); 
       } 
      } 
      return base.GetVaryByCustomString(context, custom); 
     } 
+0

ありません、これはそれがVaryByHeadersあるVarybyCustomではありません –

関連する問題