我在用重写路径() http://msdn.microsoft.com/en-us/library/1kz7fdx9.aspx in an IHttpModule
“路由”到子 Web 应用程序,如以下 IIS 布局所示:
例如,当请求/根/布莱赫进来,一个 HTTP 模块root应用程序重写路径/根目录/obw希望obw应用程序将接管。
这大部分都有效,只是波浪号 (~) 无法正确解析:
波形符运算符解析为root重写后的网络应用程序,而不是obw网络应用程序。这似乎就是这样的事情变基客户端路径论证RewritePath()
是为了解释,但改变这个论点似乎没有任何区别。
重写 URL 时如何正确解析波形符 (~) 运算符?
这是行不通的,因为 RewritePath 并非设计用于将请求发送到不同的应用程序。您说它“大部分有效”,但实际上它并没有按照您的想法进行,而是在同一应用程序中处理重写的请求。这就是 ~ 未解析为子应用程序的原因。
有很多事情也是行不通的。例如
- 如果 obw 文件夹下有 global.asax ,它将被忽略
- 您将无法加载来自 obw/bin 的程序集
换句话说,在 RewritePath 的上下文中,它只是将 obw 视为普通子文件夹,而不是任何特殊的东西。
作为替代方案,您可以考虑使用IIS URL重写模块 http://www.iis.net/learn/extensions/url-rewrite-module/using-the-url-rewrite-module,就不会有这个问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)