Asp.net Application_BeginRequest未被触发,global.asax不在服务器上运行

时间:2012-02-05 05:58:22

标签: asp.net url-rewriting

对于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错误。

3 个答案:

答案 0 :(得分:0)

好的,这就是我修复此问题的方法......需要告诉IIS要处理哪些文件。在我的情况下,我需要一些* .js文件和* .php文件的处理程序重定向到aspx或ashx文件。

在本地它工作得很好但是当我部署所有我得到的是404。

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

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

答案 1 :(得分:0)

我能够通过使用“在发布之前删除所有现有文件”选项发布我的网站来解决此问题,此选项位于“发布”向导窗口,“设置”&gt; “文件发布选项”。

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

答案 2 :(得分:0)

尝试将Managed Pipeline Mode从经典切换到应用程序池中的集成