协议异常错误

时间:2018-06-01 09:30:26

标签: c# asp.net soap ssis basichttpbinding

我正在尝试在脚本任务中调用soap服务但是会出现以下错误。我通过wsdl url添加了一个serviceReference。我不知道这个错误是指什么。但是我能够在SOAPUI中获取数据 “此消息的收件人无法理解命名空间”http://sap.com/xi/XI/Message/30“中的标头”ReliableMessaging“,导致消息无法处理。此错误通常表示此消息的发件人已启用通信协议接收方无法处理。请确保客户端绑定的配置与服务的绑定一致。“

下面是我正在使用的代码

EndpointAddress endPointAddress = new EndpointAddress("https://sapnxcci.intel.com:8220/XISOAPAdapter/MessageServlet?senderParty=&senderService=MC4510&receiverParty=&receiverService=&interface=Segments&interfaceNamespace=http://intel.com/xi/Intel-MDM/Project/Segment");

        SegmentsClient client = new SegmentsClient(BindingUtility.GetInitiativesBinding(), endPointAddress);
        client.ClientCredentials.UserName.UserName = "sys_idwcons";
        client.ClientCredentials.UserName.Password = "abdc";

        SegmentResponse results = client.ListSegments(new SegmentRequest() { SegmentName = "" });

在GetInitiativesBinding中包含以下内容。

 public static BasicHttpBinding GetInitiativesBinding()
    {
        BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.Transport);
        binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Basic;
        binding.MaxReceivedMessageSize = 2147483647;
        binding.MaxBufferSize = 2147483647;
        binding.ReceiveTimeout = TimeSpan.FromMinutes(5);
        binding.SendTimeout = TimeSpan.FromMinutes(5);

        return binding;
    }

我的App.Config文件看起来像这样

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <system.serviceModel>
     <bindings>
        <basicHttpBinding>
            <binding name="SegmentsBinding" />
            <binding name="SegmentsBinding1">
                <security mode="Transport" />
            </binding>
        </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://sapnxcci.intel.com:8420/XISOAPAdapter/MessageServlet?senderParty=&amp;senderService=MC4510&amp;receiverParty=&amp;receiverService=&amp;interface=Segments&amp;interfaceNamespace=http%3A%2F%2Fintel.com%2Fxi%2FIntel-MDM%2FProject%2FSegment"
          binding="basicHttpBinding" bindingConfiguration="SegmentsBinding"
          contract="ServiceReference1.Segments" name="HTTP_Port" />
      <endpoint address="https://sapnxcci.intel.com:8220/XISOAPAdapter/MessageServlet?senderParty=&amp;senderService=MC4510&amp;receiverParty=&amp;receiverService=&amp;interface=Segments&amp;interfaceNamespace=http%3A%2F%2Fintel.com%2Fxi%2FIntel-MDM%2FProject%2FSegment"
           binding="basicHttpBinding" bindingConfiguration="SegmentsBinding1"
           contract="ServiceReference1.Segments" name="HTTPS_Port" />
     </client>
   </system.serviceModel>
</configuration>

1 个答案:

答案 0 :(得分:0)

我认为这是因为PI的返回消息包含标签。  标签只有在拥有PI-PI连接时才有用。

参考:https://archive.sap.com/discussions/thread/1839924