使用IIS ARR路由SOAP请求

时间:2012-01-27 00:39:44

标签: c# iis soap url-routing reverse-proxy

情况是我们有一些SOAP(asmx)服务,这些服务的版本取决于第三方软件。这些服务驻留在domainA。

我们正在迁移到第三方软件的新版本,因为版本不兼容,现有的SOAP服务将无法驻留在该版本中。目前升级的东西都存在于temp.domainA。

我们正在开发新的服务来替换旧的SOAP服务,并将插入wcf路由或其他东西来保存我们的下一个第三方版本升级方。

理想情况下,一旦temp.domainA准备就绪,我们将把dns切换为domainA,并将旧域A更改为old.domainA,以便破坏所有引用soap服务的现有应用程序。

我一直在使用SOAP和ARR匹配肥皂服务所具有的常见命名约定,并试图将这些请求路由到。这对于Get请求非常有效,但对于soap请求的POST请求则不太好。

我通过运行2个相同的服务来设置一个小测试,一个在测试服务器上,一个在我的本地机器上。我本地计算机上的数据返回的数据与测试服务器上的数据不同,因此我可以判断正在调用哪一个。

我在本地iis中设置了ARR的代理,成为测试服务器上服务的反向代理。我设置了一个url重写规则,以根据soap服务URL的命名约定检查传入的请求。

如果我通过浏览器浏览soap端点,httpget的一切都按计划运行。我收到来自远程测试服务器的响应,请求来自localhost。

当我运行测试应用程序进行相同的调用时,除了作为肥皂的帖子我得到此错误

exception.message: There was no endpoint listening at http://localhost/webservice/Default.asmx that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. exception.InnerException: The remote server returned an error: (404) Not Found.

我的设置

enter image description here

然后对于代理类型我有

  • 使用url rewrite检查已检查的
  • 启用ssl offloading checked
  • 和反向代理:设置为remote.test.server

0 个答案:

没有答案