由于不同的Endpoint-URL /不同的命名空间,过程'[..]'不存在

时间:2018-06-13 13:42:11

标签: c# soap namespaces procedure

我正在使用一个小小的C#-Tool来使用一个效果很好的网络服务。

现在我在不同的环境(不同的URL)上运行相同的Webservice。 URL由参数(文本输入)传递。

因此我通过以下方式传递不同的网址:

 soapEndpointAddress endpointAddress = new EndpointAddress("http://abc.localhost/oxerpservice.php?version=2.14.0");
 Client = new Service1SoapClient(binding, endpointAddress);

WSDL中的命名空间包含某些地方的Web服务的URL:

<s:schema elementFormDefault="qualified" targetNamespace="http://abc.localhost/OXERPService">

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://abc.localhost.localhost/OXERPService" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://abc.localhost/OXERPService">

现在我想在实例http://xyz.localhost中使用Webservice,而不更新VS-Project中的服务引用。

所以我传递新的URL来发送SOAP请求:http://xyz.localhost

现在发生的事情是,由于名称空间不同,因此无法找到任何现有操作。

我认为因为我在abc.localhost中添加了服务引用,它仍然在SOAP请求中传递它们,但是它们已经更改为xyz.localhost。

如果我在VS中更新服务引用,一切正常,但目标是在不更改代码/更新服务引用的情况下使用Web服务。

我已经找到了一个可能的解决方案:How to make your Service-Reference proxy URL dynamic? - 但这似乎不起作用,因为我已经将端点的URL传递给客户端。

有没有可能的解决方案?

先谢谢了 - Alex

0 个答案:

没有答案