zoukankan      html  css  js  c++  java
  • [Log]ASP.NET之HttpModule拦截404异常

    Httpmodule代码:
    public class Error404Module : IHttpModule
        {
            public void Init(HttpApplication context)
            {
                context.Error += new EventHandler(Context_Error);
            }
    
            protected void Context_Error(object sender, EventArgs e)
            {
                HttpContext ctx = HttpContext.Current;
                HttpResponse response = ctx.Response;
                HttpRequest request = ctx.Request;
    
                Exception ex = ctx.Server.GetLastError();
                HttpException hex = ex as HttpException;
                if (hex != null && hex.GetHttpCode() == 404)
                {
                    ctx.Server.ClearError();
                    string url = request.Url.AbsoluteUri.ToLower();
                    if (url.Contains(@"http://hj.woniu.com"))
                    {
                        url = url.Replace(@"http://hj.woniu.com", @"http://sg.hj.woniu.com");
                    }
                    response.Redirect(url, true);
                }
            }
            public void Dispose()
            {
    
            }
        } 
    
    Web.Config配置:
    <httpModules>
          <add name="Error404Module" type="ActHJ.ErrorModules.Error404Module"/>
       </httpModules> 
    
    
    <system.web>
        <compilation debug="false">
          <assemblies>
            <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
            <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
            <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
            <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
          </assemblies>
          <buildProviders>
            <add extension=".html" type="System.Web.Compilation.PageBuildProvider" />
            <add extension=".htm" type="System.Web.Compilation.PageBuildProvider" />
          </buildProviders>
        </compilation> 
    
    
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
        <modules>
          <remove name="ScriptModule"/>
          <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
          <add name="Error404Module" type="ActHJ.ErrorModules.Error404Module"/>
        </modules>
  • 相关阅读:
    MaltReport2:通用文档生成引擎
    PostgreSQL 10 如何使用 PgAdmin3
    Stackoverflow 珠玑:C#封装重试指定次数的功能
    C# 6 元组应用 Part 2:C# 也玩模式匹配
    C# 6 元组应用 Part 1:方便的字典工厂方法
    Stackoverflow 珠玑:用于分组的 LINQ 扩展方法
    Linux 下的 PostgreSQL 数据库+文件通用自动备份脚本
    让 Odoo POS 支持廉价小票打印机
    NopCommerce 根据手机浏览器和桌面浏览器切换 Theme
    为什么 C# 比 C++ 编译快那么多
  • 原文地址:https://www.cnblogs.com/Areas/p/5748025.html
Copyright © 2011-2022 走看看