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

时间:2020-03-06 14:25:38  来源:igfitidea点击:

我在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