1

このコードはglobal.asaxにあります

void Application_Start(object sender, EventArgs e)  
    {  
       // Code that runs on application startup  
        if (Request.Cookies["mylang"] == null)  
        {  
            HttpCookie mylang = new HttpCookie("mylang");  
            mylang.Value = "fa";
            mylang.Expires = DateTime.Now.AddYears(1);
            Response.Cookies.Add(mylang);
            Session.Add("mylang", "fa");
        }
        Thread.CurrentThread.CurrentUICulture = new CultureInfo(Request.Cookies["mylang"].Value);
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Request.Cookies["mylang"].Value);
        Session["mylang"] = Request.Cookies["mylang"].Value;
    }

しかし、以下の Web サイトを実行すると、次のエラーが表示されました。

このコンテキストではリクエストを利用できません

なんで?

4

1 に答える 1

1

Application_Startは、ASP ファイルが処理される前に 1 回呼び出されます。そのため、Requestはまだ利用できません。

各リクエストで呼び出されるApplication_BeginRequestを使用します。

void Application_BeginRequest(object sender, EventArgs e)
{
   Config.Init();

   // Code that runs on application startup
   if (Request.Cookies["mylang"] == null)
   {
      ...
   }
}

Global.aspx の Application_Start と Application_BeginRequest イベント

于 2013-05-21T21:37:11.530 に答える