我有一个.net 4.0Web应用程序,在我的本地计算机和旧的web服务器上工作起来很有魅力。这两台计算机都使用经典和.net 4.0应用程序池,没有任何问题。
但是当我迁移到一个新的web服务器时,它会产生404错误,而不是重写urls。我创建了一个尽可能简单的新应用程序。它将所有请求路径重写到default.aspx,如下所示:
Global.asax.cs
protected void Application_BeginRequest(object sender, EventArgs e)
{
Context.RewritePath("default.aspx", false);
}如果我直接请求文件本身,我就可以访问default.aspx,但是除了'default.aspx‘之外,当我向一个入口发出请求时,我会从静态文件处理程序中得到404个错误。
你知不知道,我该怎么修理它?
全尺寸图像

发布于 2012-05-15 07:12:12
必须检查应用程序池标识设置。确保您的web应用程序的appPool标识设置为ApplicationPoolIdentity和托管管道模式应该集成。
然后检查您的web配置system.webserver模块,并在您的应用程序web配置上启用此配置。
<system.webServer><modules runAllManagedModulesForAllRequests="true"> </modules></system.webServer>发布于 2012-05-15 15:43:46
我也经历过类似的问题。在VisualStudio2008DevelopmentServer和IIS6.5上运行的APP_Code文件夹中有一个URL重写类,但IIS7.5中的不是。"OnBeginRequest“似乎没有开火,我也收到了同样的404错误。经过多次反复试验,我找到了解决我的问题的组合:
在IIS7.5中,在网站基本设置下,将应用程序池设置更改为“经典.NET AppPool”。
在Web.config中,我添加了以下内容来引用URL重写类:
<httpModules>
<add name="*URLRewriteClassName*" type="*Namespace.URLRewriteClassName*"/>
</httpModules> 由于您正在从执行重写代码,所以我将首先尝试更改应用程序池,看看会发生什么。希望这能帮助你,祝你好运!
https://stackoverflow.com/questions/10589179
复制相似问题