将 HTML 应用程序迁移到 ASP.NET 4.0 时,IIS 7 不会触发 Global.asax 中的应用程序错误

IIS 7 does not fire Application Error in Global.asax while migrating a HTML application to ASP.NET 4.0

我正在将 HTML 站点迁移到 ASP.Net 4.0 网络应用程序。如果有人键入现有 HTML 页面 URL,我想将他们重定向到相应的 ASP 页面。

我已经尝试了以下建议,但没有任何效果。

  1. 包含重定向到 web.config 中某些 asp 页面的自定义错误标记 - 无效

    enter code here
    <customErrors mode="On">
      <error statusCode="404" redirect="~/Error.aspx" />
    </customErrors>
    enter code here
    
  2. 在 Global.asax 页面的 Application_Error 方法下包含以下代码。 - 它不会触发

    enter code here
    
    void Application_Error(object sender, EventArgs e)
        {
            // Code that runs when an unhandled error occurs
            string fullOrginalpath = Request.Url.ToString();
            string strPathExtn = 
                Request.CurrentExecutionFilePathExtension.ToString();
            if (fullOrginalpath.Contains(".html"))
            {
                Server.ClearError();
                Response.Clear();
                fullOrginalpath = fullOrginalpath.Replace(".html", ".aspx");
                Response.Redirect(fullOrginalpath);
            }           
        }
    enter code here
    
  3. 尝试在 web.cofig 中添加 httpErrors 标记 - 它抛出 500 个内部错误。

我想你可能想看看 IIS URL 重写模块:

https://www.iis.net/downloads/microsoft/url-rewrite