【问题标题】:Asp.net Application_BeginRequest not fired, global.asax not run at serverAsp.net Application_BeginRequest 未触发,global.asax 未在服务器上运行
【发布时间】:2016-07-05 17:17:48
【问题描述】:

对于 URL 重写,我在 global.asax 中编写了代码

只是为了测试,我正在尝试

string hurl = HttpContext.Current.Request.Url.AbsoluteUri.ToLower() if(hurl.Contains("atech.html")){HttpContext.Current.RewritePath("btech.html");}

我也配置了

<modules runAllManagedModulesForAllRequests="true"/>

这在我的本地 iis 中有效,但我不在我的托管服务器上运行

给出 404 错误。

【问题讨论】:

  • 服务器是否运行 IIS 7 集成模式?

标签: asp.net url-rewriting


【解决方案1】:

尝试将托管管道模式从经典切换到集成到应用程序池中

【讨论】:

    【解决方案2】:

    好的,这就是我解决此问题的方法... IIS 需要被告知要处理哪些文件。就我而言,我需要一些 *.js 文件和 *.php 文件的处理程序来重定向到 aspx 或 ashx 文件。

    在本地它工作得很好,但是当我部署时,我得到的只是 404。

    所以你需要进入 IIS。找到您的站点配置并在您的处理程序映射(IIS7,在 IIS6 我认为它在应用程序配置中)中添加条目来处理 *.XXX 并让您为 *.aspx 处理它的任何处理程序(通常是它的 System.Web.UI.PageHandlerFactory )

    它应该被修复。希望这会有所帮助

    【讨论】:

      【解决方案3】:

      我可以通过使用“在发布前删除所有现有文件”选项发布我的网站来解决此问题,该选项位于发布向导窗口的“设置”>“文件发布选项”中。

      在我的情况下,由于某种未知原因,在 global.asax.cs 上执行 Application_BeginRequest 被忽略,我能够在 Application_BeginRequest 中添加一个日志条目来确认此问题,该日志条目从未被记录。

      【讨论】:

        猜你喜欢
        • 2013-07-20
        • 1970-01-01
        • 2014-10-30
        • 2011-11-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-12
        • 2011-01-02
        • 1970-01-01
        相关资源
        最近更新 更多