IIS redirect/rewrite.asmx 服务

IIS redirect/rewrite .asmx service

我四处寻找这个问题的答案,但找不到适合我的确切情况的答案。

目前有以下设置:

RootApplication(sitea.bla) .NET 3.5

- ChildApplication (sitea.bla/service1) .NET 3.5

根应用程序正在 .NET 4.5 中重写,但 service1 应用程序不会在当前阶段更新,并将作为子应用程序被删除。

我已将 service1 应用程序移至子域 (service1.sitea.bla),因此它可以 运行 在遗留应用程序池中。

虽然我有多个其他 applications/services/clients 引用了原始端点,但它工作得很好。我已经设置了一个在浏览器中完美运行的 IIS 重定向

sitea.bla/service1/exampleservice.asmx 被重定向到 service1.sitea.bla/exampleservice.asmx

尽管通过客户端应用程序进行调用时失败,除非我手动将端点更改为新的子域。我也试过通过反向代理实现。

在不手动将所有端点更改为新子域的情况下实现此目的的最佳方法是什么?

您需要设置正确的重写规则:

1) 您需要安装ARR module(您需要它,因为您将请求重写到不同的应用程序)

2) 在 IIS 管理器中,您应该启用反向代理

2.1) 在服务器节点上单击 "Application Request Routing Cache"

2.2) 点击"Server proxy settings"然后点击"Enable proxy",然后"Apply"

3) 在应用 sitea.bla 的 web.config 中添加此重写规则:

<rule name="rewrite service1" stopProcessing="true">
    <match url="^service1(.*)" />
    <action type="Rewrite" url="http://service1.sitea.bla{R:1}" />
</rule>

4) 尝试调用 sitea.bla/service1/exampleservice.asmx