IIS通配符映射不适用于ASP.NET

时间:2008-09-19 12:02:54

标签: asp.net iis

我在IIS 6上设置了通配符映射,添加了“C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll”,并确保未检查“验证文件是否存在”:< / p>

  • 在IIS中的“website”目录
  • 在网站上

但是,在iisreset之后,当我转到http://myserver/something.gif时,我仍然会收到IIS 404错误,而不是asp.net错误。

我错过了什么吗?

精密工业:

  • 这不适用于使用ASP.NET MVC
  • 我宁愿不使用iis 404自定义错误页面,因为我有一个用于记录错误的httpmodule(这是一个低流量的内部站点,因此通配符映射性能损失不是问题;)

3 个答案:

答案 0 :(得分:4)

您需要在web配置中为gif文件添加HTTP处理程序:

  <system.web>
    <httpHandlers>
      <add path="*.gif" verb="GET,HEAD" type="System.Web.StaticFileHandler" validate="true"/>
    </httpHandlers>
  </system.web>

强制.Net处理文件,然后你就会得到.Net错误。

'/'应用程序中的服务器错误。

无法找到资源。 说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。

请求的网址:/test.gif


版本信息:Microsoft .NET Framework版本:2.0.50727.1433; ASP.NET版本:2.0.50727.1433

答案 1 :(得分:0)

您可以尝试使用自定义错误来执行此操作。 进入网站属性中的自定义错误,并将404设置为指向站点中的URL。就像/404.aspx那样存在。

使用aspnet_isapi,您希望使用HttpModule来处理通配符。 比如http://urlrewriter.net/

答案 2 :(得分:0)

如果不使用ASP.net路由或URLrewriting或某些网址映射机制,则无法使用wilcard映射。

如果你想做404,你必须在web.config中配置它 - &gt;自定义错误。
然后,如果需要,您可以重定向到其他页面。

3.5 SP1中的新增功能,您将RedirectMode设置为“responseRewrite”,以避免重定向到自定义错误页面并保持浏览器中的URL不变。

其他方法,将捕获global.aspx中的错误,并重定向。如果您需要进一步的说明,请对答案发表评论。