ASP.NET/IIS:404所有文件类型(ASP.NET/IIS: 404 for all fil

2019-07-03 17:45发布

我设置了404处理器页在web.config中,但它的工作原理,只有当URL的扩展的.aspx(或其他这是由ASP.NET处理)。 我知道我可以设置静态的HTML页面在网站的选择,但我希望有一个页面。 是否有任何选项来指定ASPX页面的处理程序在IIS的所有要求扩展?

Answer 1:

直接的问题是,是否存在未选择指定的ASPX处理所有要求扩展:是的,有。 我将讨论如何做到这一点很快。

首先,我认为,“隐藏”的问题-你真的想要的答案-是,是否有一种方法来重定向所有的404错误比ASPX,ASMX等是的,有其他页面,这是更好选择,如果它会解决您遇到的问题。

要重定向在IIS 6的所有404,右键点击你的Web应用程序根目录(无论是其自己的网站或在主站点的虚拟目录),并选择“属性”。 从那里,选择“自定义错误”选项卡。 在列表中找到404并将其更改为你想要的重定向。

现在,如果这是不够的 - 我真的希望它 - 是的,你可以通过ASPX处理器运行的每一页。 然而,这样做来在效率方面相当高的成本 - 原始的HTML /投放的图片是比什么动态快得多。

要做到这一点,右键点击你的Web应用程序根目录,然后选择“属性”。 选择“主目录”选项卡。 点击“配置”; 一个新的窗口会弹出。 路径从ASP.NET页面提供的一个副本,然后将其用于通配符应用程序映射。

请记住,同样,这是错误答案大部分时间。 这将您的性能产​​生负面影响,而且是用电锯雕刻火鸡的等价物。 我强烈推荐的第一个选项在这一个,如果将制定出适合您。



Answer 2:

有关信息:

这是几个漂亮的事情之一IIS7带来的-对任何文件目录和文件级安全(基于相同的web.config中的东西,对于ASP -有效-所有页面都经过处理,这样你可以做定制404和路由.NET文件之前IIS7)。

所以理论上“使用II7”是一个答案(将及时“的”答案) - 但当然它不是,如果你不托管/ W2K8上(或更高版本)正在举办一个非常实用的。



Answer 3:

web.config中只能设置错误页由其控制的网站页面。 如果你有ASP.Net应用程序的范围以外的任何其他页面,那么你在IIS中设置为它们处理。 那里面有配置的404页面,您可以将它指向您的自定义页面的选项。



Answer 4:

唯一的其他东西我能想到的是通过所有的扩展asp.net。

这样,所有类型的文件得到通过asp.net处理和你的自定义错误页会工作。



Answer 5:

在IIS应用程序配置,您可以设置一个通配符映射到C( “*”):\ WINDOWS \ Microsoft.NET \框架\ V2.0.50727 \ ASPNET_ISAPI.DLL



Answer 6:

  1. 您可以在IIS中设置通配符映射(应用程序配置/映射/通配符映射/ - 刚刚成立ASPNET_ISAPI.DLL为可执行,并取消确认文件是否存在盒),将路由所有传入的请求到您的应用程序 - 这样你就可以控制行为直接从它。

  2. 您没有设置静态页面的IIS应用程序的设置。 恕我直言,你应该能够将在特定的服务器错误的情况下,作为着陆页从您的应用程序设置有效的URL(如/error_handler.aspx)。



Answer 7:

在IIS中,您可以设置自定义错误404错误,直接连接在站点属性中的URL。

它显示了默认为C一个静态的html:\ WINDOWS \帮助\ iisHelp \ COMMON \ 404b.htm

你可以将其更改为您的网站相对URL。



文章来源: ASP.NET/IIS: 404 for all file types