urlRewrite引起404错误,兄弟们帮忙看看,有点小急【100分】

nonocast 2006-08-06 08:45:57
我直接在Application_BeginRequest中进行HttpContext.Current.RewritePath
然后运行测试都是可以的
但放到IIS上测试就直接给我404,个人认为是在没到Application_BeginRequest就被IIS给捕捉了,
难道要用自定义错误页面还是怎么设置IIS
应该是很简单的问题了,100分

...全文
580 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nonocast 2006-08-06
  • 打赏
  • 举报
回复
楼上的,我想知道怎么解决rewrite,呵呵
pfc001 2006-08-06
  • 打赏
  • 举报
回复
IIS 服务器返回“HTTP 404 - File not found”(HTTP 404 -找不到文件)错误的常见原因
察看本文应用于的产品
文章编号 : 248033
最后修改 : 2005年11月17日
修订 : 9.1
我们强烈建议所有运行 Microsoft Windows Server 2003 的用户将 Microsoft Internet 信息服务 (IIS) 升级到 6.0 版,因为 IIS 6.0 大大增强了 Web 基础结构的安全性。有关与 IIS 安全性相关的主题的更多信息,请访问下面的 Microsoft 网站:
http://www.microsoft.com/technet/security/prodtech/IIS.mspx (http://www.microsoft.com/technet/security/prodtech/IIS.mspx)
重要说明:本文面向的读者是 Internet 信息服务 (IIS) 管理员。如果您不是 IIS 管理员,但您想了解在 Web 浏览器上看到该错误信息时意味着什么,则请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
264284 (http://support.microsoft.com/kb/264284/) 在浏览器中收到“The page cannot be found”(找不到该页)错误信息时的应对措施
症状
请求显示一个网页时,在 Web 浏览器的顶部显示下面的错误信息:
The page cannot be found
The page you are looking for might have been removed, had its name changed, or is temporarily unavailable.
在该网页上再往下的部分您会看到下面的错误信息:
HTTP 404 - File not found
Internet Information Services
回到顶端

原因
Web 服务器在无法检索到所请求的页时,返回“HTTP 404 - File not found”错误信息。

下面是导致此错误信息的一些常见原因: • 所请求的文件已被重命名。
• 所请求的文件已被移动到其他位置并且/或者被删除。
• 所请求的文件由于维护、升级或其他未知原因而暂时不可用。
• 所请求的文件不存在。
• IIS 6.0:没有启用相应的 Web 服务扩展或 MIME 类型。
• 某个虚拟目录映射到另一个服务器上的驱动器的根目录。

回到顶端

解决方案
要解决此问题,请验证在浏览器的 URL 中请求的文件存在于 IIS 计算机上,而且位于正确的位置。

请使用 IIS Microsoft 管理控制台 (MMC) 管理单元确定所请求的文件在 IIS 计算机的文件系统中应处的位置。

如果网站使用虚拟目录 (VDIR),这一点特别重要。VDIR 是这样一个目录:网站的主目录中没有包含它,但从客户端浏览器上看好像包含它一样。此虚拟目录必须被映射到驱动器上的子文件夹或按名称引用文件。

例如,假设导致 404 错误的 URL 是 http://Microsoft.Com/Test/File1.htm,而且 IIS 管理单元为 Microsoft.Com 网站显示该 URL,/Test/ 目录实际上是一个映射到 IIS 计算机上 c:\Information 位置的虚拟目录。这意味着您必须验证 File1.htm 文件位于 c:\Information 目录中(并且验证文件名的拼写正确)。

IIS6 动态内容:当没有启用 Web 扩展时,W3C 扩展日志文件中会记录一个 404.2 项。使用 IIS Microsoft 管理控制台 (MMC) 管理单元启用相应的 Web 扩展。默认 Web 扩展包括:ASP、ASP.net、服务器端包含、WebDAV 发布、FrontPage 服务器扩展、通用网关接口 (CGI)。必须添加自定义扩展并明确启用它。请参见 IIS 6.0 帮助文件以了解更多信息。
IIS6 静态内容:当某个扩展没有映射到 MIME 映射属性中的已知扩展时,W3C 扩展日志文件中将会记录一个 404.3 项。使用 IIS Microsoft 管理控制台 (MMC) 管理单元在 MIME 映射中配置相应的扩展。请参见 IIS 6.0 帮助文件以了解更多信息。

有关导致此错误信息的其他不太常见的原因的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
247714 (http://support.microsoft.com/kb/247714/) 对长文件名使用 PUT 命令导致“HTTP 404 - File not found”(HTTP 404 - 未找到文件)错误
221553 (http://support.microsoft.com/kb/221553/) 在 Web 内容上设置文件属性导致 404 - File not found(未找到文件)错误
216803 (http://support.microsoft.com/kb/216803/) IIS 隐藏静态文件返回 HTTP 404 错误或拒绝访问错误
288123 (http://support.microsoft.com/kb/288123/) 从 Exchange Server 5.5 升级到 Exchange 2000 Server 后,在尝试连接到 OWA 服务器时出现 HTTP 错误 404“Page cannot be displayed”(该页无法显示)
回到顶端

更多信息
有关虚拟目录的更多信息,请参见 IIS 5.0 文档中的“About Web Site Management”(关于网站管理)主题,该文档的位置如下:
Administration\Web Site Management\About Web Site Management
注意:如果您的本地计算机上安装了 IIS 5.0 文档,则可以使用下面的 URL 找到此主题:
http://localhost/iishelp/iis/htm/core/iihtmat.htm#virtualdirectories (http://localhost/iishelp/iis/htm/core/iihtmat.htm#virtualdirectories)
要在基于 Microsoft Windows Server 2003 而且安装了 IIS 的计算机上查看此主题,请将下面的链接粘贴到浏览器的地址栏中,然后按 Enter:
mk:@MSITStore:C:\WINDOWS\help\iismmc.chm::/HTM/qss_wss_troubleshooting.htm
注意:C:\Windows 代表系统根目录。如果 Windows 操作系统安装在其他驱动器上,则您必须相应地编辑此链接。

您也可以通过 IIS 管理器访问产品文档。 有关如何访问此“帮助”功能的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
815127 (http://support.microsoft.com/kb/815127/) 如何访问 IIS 6.0 帮助文档
回到顶端
nonocast 2006-08-06
  • 打赏
  • 举报
回复
http://huobazi.cnblogs.com/archive/2005/11/21/NoDirUrlRewrite.html
它怎么能加*?
nonocast 2006-08-06
  • 打赏
  • 举报
回复
找到原因,
是因为IIS如没有找到目录或文件时会报错。

妈.的,有什么办法能搞定吗?
nonocast 2006-08-06
  • 打赏
  • 举报
回复
在MSDN的那篇文章中看到,
为了让该网址更具有“隐蔽性”,如果让用户把/Products/Baverage.aspx后面Baverage.aspx一段截去,在浏览器中输入 /Products/来浏览产品分类列表会更好一些。乍一看,这项任务微不足道,只需添加一条网址重写规则将/Products/映射到 /ListCategories.aspx即可。然而这里有一个微妙之处,你必须先创建一个/Products/目录,并在里面放一个空文件 Default.aspx。

  要认识为什么这些额外的步骤是必须的,先回顾一下前文。网址重写引擎是处于ASP.NET一级的,也就是说,如果ASP.NET没有获得处理请求的机会的话,网址重写引擎就不能对输入的网址请求作出判断。此外,IIS仅在请求文件包含相应扩展名时才将请求转交给ASP.NET引擎。如果用户访问/Products/,IIS并不知道其扩展名是什么,于是它检查该目录下的文件看是否包含有默认首页文件名(Default.aspx,Default.htm,Default.asp,等等,这些文件名在IIS管理工具对话框中Web服务器属性对话框中的文档标签中定义。)当然,如果/Products/目录不存在的话,IIS将返回一个HTTP 404错误。

  所以我们需要创建一个/Products/目录并在该目录下额外创建一个空文件Default.aspx,IIS会检查该目录下的文件,发现有一个默认文件名Default.aspx,于是将请求转交给ASP.NET,这样,网址重写引擎才能生效。

--------------------------------------------------------------------------
这岂不是很丑陋,
但问题是vs2005自带的web服务器为什么可以呢?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧