“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 – 这不会针对每个请求或每个会话运行。