“System.Web.HttpException:此上下文中的响应不可用”仅在IIS中
我在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中执行。
谢谢
我不会在Application_Start中执行请求/响应导向的事情。 尝试在BeginRequest
执行此操作。
在IIS7中以集成模式运行时,请求上下文在应用程序启动时不可用。
有关详细信息,请参阅我的问题和接受的答案:
Global ASAX – 获取服务器名称
还要注意,您的代码中似乎存在逻辑错误 – 这将仅为应用程序启动时访问该站点的人设置cookie – 这不会针对每个请求或每个会话运行。