1

我有一种情况,我想捕获 HTML 页面(不仅仅是 aspx 页面)触发的 404 错误,但我只能访问我网站根文件夹的 web.config 和所有子目录(注意,我没有可以访问实际的 IIS 服务器,但我无法创建应用程序或更改设置)

所以我确实在子目录上尝试了 web.config customerrors,它们确实有效,仅适用于 ASPX 页面,而不适用于 HTML 页面,有人知道为什么吗?

4

4 回答 4

2

请注意,上面的两个答案对于通常情况是正确的。但是,可以将 IIS 6.0 及更低版本配置为通过 ASP.NET 处理 HTML 页面或其他任何内容。此外,IIS 7 彻底改变了一切——实际上,ASP.NET 管道现在就是IIS 管道,因此任何内容都可以通过任何 HttpModules 进行处理。

因此,在 IIS 7 及更高版本中,您可以为 ASPX 页面配置的任何内容,都可以为 HTML 页面进行配置。

于 2009-04-22T00:11:54.743 回答
0

IIS 不解析 HTML 页面,因此不受 web.config 设置的影响。如果不配置 IIS 中的设置,我不知道有任何解决方法。

于 2009-04-22T00:03:26.447 回答
0

比 Jeremy 所说的更具体一点,IIS 将不同的文件扩展名映射到不同的可执行文件。默认情况下,它将被配置为让 .NET 运行时处理 .aspx 文件(在这种情况下,您的 web.config 将被加载和使用),但它将直接为 .html 页面提供服务(因此退回到它自己的 404错误处理)。

烦人,但我认为除了控制 IIS 或将平面 html 页面制作成 aspx 页面(即使它们不包含实际的服务器端内容)之外,你无能为力,以欺骗 IIS 让 .NET处理它们。

于 2009-04-22T00:06:34.083 回答
0

您可以查看 ASP.NET 的新路由功能:http://msdn.microsoft.com/en-us/library/cc668201.aspx

于 2009-04-22T00:11:02.950 回答