url在应用程序池中重写和ARR

时间:2013-10-29 01:01:50

标签: iis url-rewriting reverse-proxy arr

我正在尝试弄清楚如何使用url重写和应用程序请求路由(ARR)在同一服务器上的不同应用程序池中重写。

在简化版本中,这就是我所拥有的:REST服务API使用2个虚拟目录Service.A和B实现,因此虚拟目录是访问资源A和B的URL的一部分

获取[https://] api.mycompany.com/Service.A/A

获取[https://] api.mycompany.com/Service.B/B

我想要实现的是为没有虚拟目录名的api提供一个外部URL,显然不需要进行代码重构(合并解决方案文件和构建)

获取[https://] api.mycompany.com/A

获取[https://] api.mycompany.com/B

我实现了一个url重写规则来匹配路径中的/ A并用/Service.A/A替换,在默认网站级别的web.config中使用这样的代码,这很好。

    <rewrite>

            <rule name="AddServicePrefix" enabled="true">

                <match url="^A[/]?.*" />

                <action type="Rewrite" url="/Service.A/{R:0}" />

            </rule>

    </rewrite>

问题在于,当我为Service.A(从默认网站的应用程序池)分配不同的应用程序池时,这将立即失败并出现403错误,但这是我们需要的应用程序/在不同的应用程序池下运行的虚拟目录,以最大限度地减少任何池出现故障或回收时的影响。

我做了一些研究。下面的上一篇文章基本上说“如果你想将请求重新路由到另一个应用程序池,你必须跳一跳,无论该跳是否超过winsock或命名管道或其他任何”没有太多细节。我也通过了ARR指南,但在这种情况下无法弄清楚如何使用ARR。

http://forums.iis.net/t/1151510.aspx?Rewrite+across+application+pools+

有任何帮助吗?建议和评论我是否朝着正确的方向前进?

谢谢!

哦,忘记提及环境:目前在开发环境中,Windows 7上的IIS 7.5,Url Rewrite 2.0和ARR 3.0,由Web Platform Installer安装。

0 个答案:

没有答案