【问题标题】:IIS redirect/rewrite .asmx serviceIIS 重定向/重写 .asmx 服务
【发布时间】:2018-02-06 19:13:23
【问题描述】:

我已经四处寻找这个问题的答案,但找不到任何适合我确切情况的东西。

目前有以下设置:

RootApplication(sitea.bla) .NET 3.5

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

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

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

尽管我有多个引用原始端点的其他应用程序/服务/客户端,但它工作得很好。我已经设置了一个在浏览器中完美运行的 IIS 重定向

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

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

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

【问题讨论】:

    标签: c# asp.net web-services iis asmx


    【解决方案1】:

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

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

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

    2.1) 在服务器节点上点击“应用请求路由缓存”

    2.2) 点击“服务器代理设置”,点击“启用代理”,然后点击“应用”

    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

    【讨论】:

      猜你喜欢
      • 2012-09-21
      • 1970-01-01
      • 2019-07-03
      • 2019-02-11
      • 1970-01-01
      • 2010-12-04
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多