2013-08-01 7 views
3

我使用RewritePath()IHttpModule为“路由”至子网络应用程序,如在此IIS布局:如何在重写HttpModule中的URL时使代字符(〜)运算符能够工作?

enter image description here

例如,当为/根/的Bleh一个请求时,在根目录应用程序中的HTTP模块将路径重写为/root/obw,希望obw应用程序将接管。

这主要工作,除了符号(〜)不妥善解决:

enter image description here

颚化操作重写后解析为的Web应用程序,而不是占用带宽网应用程序。这似乎是rebaseClientPath参数到RewritePath()的意思是为了解释,但改变该参数似乎没有任何区别。

如何在重写URL时让代字符(〜)操作符正确解析?

+0

你如何重写路径?你叫RewritePath(...,false)吗?你确定你在重写的路径中保持代字号吗? –

回答

3

这不起作用,因为RewritePath不是用来发送请求到不同的应用程序。你说它“主要起作用”,但实际上它并没有按照你的想法做,而是在同一个应用程序中处理重写的请求。这就是为什么〜不解决子应用程序。

有很多事情都不起作用。例如

  • ,如果您有您的OBW文件夹下的Global.asax中,它会被忽略
  • 你将无法加载来自OBW/bin中

换句话说组件,在RewritePath的情况下,它只是将obw视为一个普通的子文件夹,而不是任何特殊的东西。

作为替代方案,您可以考虑使用IIS URL Rewriter module,这将不会有此问题。

+0

好信息!可悲的是,IIS重写提供程序[似乎不允许访问请求正文](http://stackoverflow.com/q/17733444/222481),我需要。 – ladenedge

+0

如果一切都失败了,可以编写一个IIS本机模块。 –

+0

本机模块会不同?这是一个“全球”模块吗? – ladenedge

相关问题