我在global.asax.cs Application Start中使用了Http.Current.Response
。当我在我的电脑上执行时,它工作正常没有任何问题。然而,当我尝试将其放入带有Windows Server 2008 R2的IIS时,我发现它出现以下错误。
它的代码是
public static void SetCookie(string key, string value, int dayExpires)
{
HttpCookie encodedCookie = HttpSecureCookie.Encode(new HttpCookie(key, value));
encodedCookie.Expires = DateTime.Now.AddDays(dayExpires);
HttpContext.Current.Response.Cookies.Remove(key);
HttpContext.Current.Response.Cookies.Add(encodedCookie);
}
我想找出为什么它会在我的系统中执行,而不是在IIS中执行。
由于
答案 0 :(得分:4)
我不会在Application_Start中执行面向请求/响应的事情。尝试在BeginRequest
中完成。
答案 1 :(得分:3)
在IIS7中以集成模式运行时,请求上下文在应用程序启动时不可用。
请详细了解我的问题和接受的答案:
Global ASAX - get the server name
还会注意到您的代码中似乎存在逻辑错误 - 这将仅为应用程序启动时访问该网站的人设置cookie - 这不会针对每个请求或每个会话运行。