代码之家  ›  专栏  ›  技术社区  ›  mathieu

IIS通配符映射不适用于ASP。导航战鉴定小组

  •  4
  • mathieu  · 技术社区  · 18 年前

    我通过添加“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll”在IIS 6上设置了通配符映射,并确保未选中“验证文件存在”:

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

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

    我错过了什么吗?

    精度:

    • 这不是为了使用ASP。NET MVC
    • 我宁愿不使用iis 404自定义错误页面,因为我有一个用于记录错误的httpmodule(这是一个低流量的内部站点,因此通配符映射性能损失不是问题;)
    3 回复  |  直到 18 年前
        1
  •  4
  •   Christopher G. Lewis    18 年前

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

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

    这种力量。Net来处理文件,然后你会得到。净误差。

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

    找不到资源。 描述:HTTP 404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保拼写正确。

    请求的URL:/test.gif


    版本信息:Microsoft。NET框架版本:2.0.50727.1433;ASP。NET版本:2.0.50727.1433

        2
  •  0
  •   WebDude    18 年前

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

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

        3
  •  0
  •   Eduardo Molteni    18 年前

    如果不使用ASP.net路由或url重写或某些url映射机制,则无法使用wilcard映射。

    如果你想做404,你必须在web.config中配置它->自定义错误。
    然后,如果你愿意,你可以重定向到其他页面。

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

    另一种方法是在global.aspx中捕获错误并重定向。如果您需要进一步的指示,请对答案发表评论。