Request.RawUrl 始终返回 /default.aspx 变体。我没有找到根本的任何方法来区分这些网址。有谁知道怎么做? IIS 7上的环境是.NET 3.5SP1。
答案 0 :(得分:1)
在设计我的URL Rewriter时,我实际上必须解决同样的问题。它与您甚至可以访问URL之前发生的过程有关。要解决此问题,您必须确保在IIS 7中关闭默认页面处理。因为如果没有默认的页面处理,它将不会经历尝试将其映射到驱动器的额外步骤,因此您将是所请求的确切URL。但这可能是也可能不是一种选择,具体取决于您是否使用System.Web.Routing
。
要关闭默认页面处理,您需要执行以下操作:
或者您可以将以下内容添加到web.config
:
<system.webServer>
<!-- ... other tags here ... -->
<defaultDocument enabled="false" />
</system.webServer>
执行此操作后,默认文档将不再添加到您的网址中。但是被警告,因为它不再是活动的,你不能依赖default.aspx实际映射到你的目录,你必须手动处理它或使用像System.Web.Routing这样的东西来处理这个功能
要在IIS 6中完成相同操作,您需要打开通配符:
以下说明适用于IIS 6.
注意:顺便说一下,我上面链接的网站上的所有资源都可用,因为你很好奇我是如何做事的。