HTTP重定向到SOAP Webservice

时间:2012-10-15 16:27:17

标签: asp.net web-services soap iis-7 http-redirect

我需要将几个ASP.net SOAP Web服务移动到不同的服务器,但它们被广泛使用,我们不能破坏客户端连接到它们以前的位置。客户端无法修改。

我已经建立了到新服务位置的HTTP重定向(302),但SOAP客户端获取重定向广告而不是服务响应。

我已经看到了一些处理这个问题的方法,但它们都涉及修改客户端代码,这不是一个选项。我唯一的想法就是创建一个透明的代理SOAP服务来返回所需的响应,但是我们实际上收紧了它的另一个缺口,而不是松开我们的耦合,这既愚蠢又难以维护。

更好的答案?

1 个答案:

答案 0 :(得分:2)

我认为使用HttpServerUtility.Transfer方法为旧服务使用旧URL创建存根将是最好的方法。这应该对任何客户端都是100%透明的,这意味着它不会发送HTTP级别重定向或客户端正确接收和响应的任何内容。

在服务器端,您可以将旧的Web服务调用映射到新调用,它应该对客户端完全透明。这仅在新服务的响应仍足够接近以验证旧服务的WSDL时才有效。如果Web服务方法和响应的签名变化太大,那么您将无法透明地执行此操作。