繁体   English   中英

覆盖 web.config 根文件以启用 customerrors 标记

[英]overwriting a web.config root file to enable customerrors tag

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

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

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

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

IIS 不解析 HTML 页面,因此不受 web.config 设置的影响。 如果不配置 IIS 中的设置,我不知道有什么方法可以解决这个问题。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM