首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IHttpModule未被调用

IHttpModule未被调用
EN

Stack Overflow用户
提问于 2014-01-16 06:47:32
回答 1查看 69关注 0票数 0

在我的程序中,我需要检查每个请求,如果url中有language参数,则需要获取它并在会话中保存。这是我的密码。在VS 2010开发服务器中,一切都很好。但是,当我尝试在IIS 7中调试时,public void Init(HttpApplication context)方法不会被调用。知道吗?

Globalizer.cs

代码语言:javascript
复制
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

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

发布于 2014-01-17 18:24:05

试试这个,对我有用。

代码语言:javascript
复制
<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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21155038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档