在我的程序中,我需要检查每个请求,如果url中有language参数,则需要获取它并在会话中保存。这是我的密码。在VS 2010开发服务器中,一切都很好。但是,当我尝试在IIS 7中调试时,public void Init(HttpApplication context)方法不会被调用。知道吗?
Globalizer.cs
using System;
using System.Web;
using System.Threading;
public class Globalizer : IHttpModule
{
public void Init(HttpApplication context)
{
context.AcquireRequestState += new EventHandler(setLanguage);
}
public void Dispose(){}
public void setLanguage(Object sender, EventArgs i_eventArgs)
{
HttpApplication http_application = sender as HttpApplication;
string language = http_application.Request.Params["language"];
if (language == "en" || language == "ja" || language == "zh" || language == "th")
{
http_application.Session["language"] = language;
}
else
{
language = (string)http_application.Session["language"];
}
var l_culture = new System.Globalization.CultureInfo(language);
Thread.CurrentThread.CurrentCulture = l_culture;
Thread.CurrentThread.CurrentUICulture = l_culture;
}
}Web.config
<configuration>
<system.web>
<globalization uiCulture="auto" culture="auto" enableClientBasedCulture="true"/>
<httpModules>
<add name="LanguageSettingModule" type="Globalizer, App_Code" />
</httpModules>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
</configuration>发布于 2014-01-17 18:24:05
试试这个,对我有用。
<configuration>
<system.web>
<globalization uiCulture="auto" culture="auto" enableClientBasedCulture="true"/>
<httpModules>
<add name="Globalizer" type="Globalizer" />
</httpModules>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name = "Globalizer" type="Globalizer"/>
</modules>
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
</configuration>https://stackoverflow.com/questions/21155038
复制相似问题