首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET上下文RewritePath 404错误

ASP.NET上下文RewritePath 404错误
EN

Stack Overflow用户
提问于 2012-05-14 18:42:21
回答 2查看 3K关注 0票数 3

我有一个.net 4.0Web应用程序,在我的本地计算机和旧的web服务器上工作起来很有魅力。这两台计算机都使用经典和.net 4.0应用程序池,没有任何问题。

但是当我迁移到一个新的web服务器时,它会产生404错误,而不是重写urls。我创建了一个尽可能简单的新应用程序。它将所有请求路径重写到default.aspx,如下所示:

Global.asax.cs

代码语言:javascript
复制
protected void Application_BeginRequest(object sender, EventArgs e)
{
    Context.RewritePath("default.aspx", false);
}

如果我直接请求文件本身,我就可以访问default.aspx,但是除了'default.aspx‘之外,当我向一个入口发出请求时,我会从静态文件处理程序中得到404个错误。

你知不知道,我该怎么修理它?

全尺寸图像

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-15 07:12:12

必须检查应用程序池标识设置。确保您的web应用程序的appPool标识设置为ApplicationPoolIdentity和托管管道模式应该集成。

然后检查您的web配置system.webserver模块,并在您的应用程序web配置上启用此配置。

代码语言:javascript
复制
<system.webServer><modules runAllManagedModulesForAllRequests="true"> </modules></system.webServer>
票数 3
EN

Stack Overflow用户

发布于 2012-05-15 15:43:46

我也经历过类似的问题。在VisualStudio2008DevelopmentServer和IIS6.5上运行的APP_Code文件夹中有一个URL重写类,但IIS7.5中的不是。"OnBeginRequest“似乎没有开火,我也收到了同样的404错误。经过多次反复试验,我找到了解决我的问题的组合:

在IIS7.5中,在网站基本设置下,将应用程序池设置更改为“经典.NET AppPool”。

在Web.config中,我添加了以下内容来引用URL重写类:

代码语言:javascript
复制
<httpModules>
     <add name="*URLRewriteClassName*" type="*Namespace.URLRewriteClassName*"/>
  </httpModules>      

由于您正在从执行重写代码,所以我将首先尝试更改应用程序池,看看会发生什么。希望这能帮助你,祝你好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10589179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档