Starting around version 8.6, output caching stopped working in some cases. Microsoft released a patch KB2836939 that prevented the output cache from working in Ektron.
Removing this patch is not a valid workaround.
You can add the code below to the global.asax file to fix the output cache function.
Info about the Microsoft Patch: http://support.microsoft.com/kb/2836939
Add the following code into your existing Global.asax file, or create a new file and insert this code in it.
<%@ Application Language="C#" %> <script runat="server"> void Application_PostRequestHandlerExecute(object sender, EventArgs e) { Dictionary<String, HttpCookie> cookieCollection = new Dictionary<string, HttpCookie>(); for (int i = HttpContext.Current.Response.Cookies.Count - 1; i >= 0; i--) { HttpCookie c = HttpContext.Current.Response.Cookies.Get(i); if (!cookieCollection.ContainsKey(c.Name)) { cookieCollection.Add(c.Name, c); } } HttpContext.Current.Items.Add("CookieCollection", cookieCollection); Response.Cookies.Clear(); }
void Application_PreSendRequestHeaders(object sender, EventArgs e) { if (HttpContext.Current.Items.Contains("CookieCollection")) { Dictionary<String, HttpCookie> cookieCollection = (Dictionary<String, HttpCookie>)HttpContext.Current.Items["CookieCollection"]; foreach(HttpCookie c in cookieCollection.Values){ HttpContext.Current.Response.Cookies.Add(c);
} } } </script>
Please sign in to leave a comment.