“System.Web.HttpException:此上下文中的响应不可用”仅在IIS中

时间:2013-12-11 16:06:29

标签: c# iis response global-asax httpcontext

我在global.asax.cs Application Start中使用了Http.Current.Response。当我在我的电脑上执行时,它工作正常没有任何问题。然而,当我尝试将其放入带有Windows Server 2008 R2的IIS时,我发现它出现以下错误。enter image description here

它的代码是

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中执行。

由于

2 个答案:

答案 0 :(得分:4)

我不会在Application_Start中执行面向请求/响应的事情。尝试在BeginRequest中完成。

答案 1 :(得分:3)

在IIS7中以集成模式运行时,请求上下文在应用程序启动时不可用。

请详细了解我的问题和接受的答案:

Global ASAX - get the server name


还会注意到您的代码中似乎存在逻辑错误 - 这将仅为应用程序启动时访问该网站的人设置cookie - 这不会针对每个请求或每个会话运行。