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

时间:2009-04-21 23:48:53

标签: asp.net iis web-config custom-errors

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

所以我在子目录上尝试了web.config客户错误,它们确实有用,对于ASPX页面而言,不是HTML页面,有人知道为什么吗?

4 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

很烦人,但是我认为除了控制IIS或者将你的平面html页面变成aspx页面(即使它们不包含实际的服务器端内容)之外,你可以做很多事情来欺骗IIS进入让.NET处理它们。

答案 3 :(得分:0)

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