IIS通配符映射不适用于ASP.NET
我在IIS 6上设置了通配符映射,方法是添加" C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll",并确保未选中"验证该文件是否存在":
- 在IIS中的"网站"目录上
- 在网站上
但是,在iisreset之后,当我转到http://myserver/something.gif时,仍然出现IIS 404错误,而不是asp.net。
有什么我想念的吗?
精度:
- 这不适用于使用ASP.NET MVC
- 我宁愿不使用iis 404自定义错误页面,因为我有一个用于记录错误的httpmodule(这是内部流量较低的网站,因此通配符映射性能损失不是问题;))
解决方案
我们可以尝试使用自定义错误来执行此操作。
进入网站属性中的自定义错误,然后将404设置为指向我们网站中的URL。就像/404.aspx一样存在。
使用aspnet_isapi,我们想使用HttpModule处理通配符。
像http://urlrewriter.net/
如果不使用ASP.net路由或者URL重写或者某些url映射机制,则不能使用通配符映射。
如果要执行404,则必须在web.config->自定义错误中进行配置。
然后,我们可以根据需要重定向到其他页面。
3.5 SP1中的新增功能,我们可以将RedirectMode设置为" responseRewrite",以避免重定向到自定义错误页面,并使浏览器中的URL保持不变。
这样做的另一种方法是在global.aspx中捕获错误,然后重定向。如果我们需要进一步的说明,请对答案发表评论。
我们需要在Web配置中为gif文件添加HTTP处理程序:
<system.web> <httpHandlers> <add path="*.gif" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="true"/> </httpHandlers> </system.web>
这将迫使.Net处理该文件,然后我们将收到.Net错误。
" /"应用程序中的服务器错误。
无法找到该资源。
说明:HTTP404. 我们正在寻找的资源(或者其依赖项之一)可能已被删除,名称更改或者暂时不可用。请查看以下URL,并确保其拼写正确。
要求的网址:/test.gif
版本信息:Microsoft .NET Framework版本:2.0.50727.1433; ASP.NET版本:2.0.50727.1433