情况是我们有一些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.
我的设置
然后对于代理类型我有