从soap11切换到soap12

时间:2019-02-18 12:36:39

标签: c# soap

我从

切换了C#中使用的协议
oCode.SoapVersion = SoapProtocolVersion.Soap11;

oCode.SoapVersion = SoapProtocolVersion.Soap12;

我收到一条错误消息“ WSE005:输入不是有效的SOAP消息,因为它具有错误的名称或错误的名称空间。指定的名称如下:信封。在以下定义的名称空间:http://www.w3.org/2003/05/soap-envelope ”。

我找不到任何含义,该消息中没有任何内容。从11切换到12时,我还需要考虑其他事项吗?我似乎没有找到其他遇到相同问题的人。

欢迎您的帮助,谢谢。

我们没有使用WCF,而是

namespace System.Web.Services.Protocols
{
    [ComVisible(true)]
    public class SoapHttpClientProtocol : HttpWebClientProtocol
    {
        public SoapHttpClientProtocol();

        [ComVisible(false)]
        [DefaultValue(SoapProtocolVersion.Default)]
        [WebServicesDescriptionAttribute("ClientProtocolSoapVersion")]
        public SoapProtocolVersion SoapVersion { get; set; }

        public void Discover();
        protected IAsyncResult BeginInvoke(string methodName, object[] parameters, AsyncCallback callback, object asyncState);
        protected object[] EndInvoke(IAsyncResult asyncResult);
        protected virtual XmlReader GetReaderForMessage(SoapClientMessage message, int bufferSize);
        protected override WebRequest GetWebRequest(Uri uri);
        protected virtual XmlWriter GetWriterForMessage(SoapClientMessage message, int bufferSize);
        protected object[] Invoke(string methodName, object[] parameters);
        protected void InvokeAsync(string methodName, object[] parameters, SendOrPostCallback callback);
        protected void InvokeAsync(string methodName, object[] parameters, SendOrPostCallback callback, object userState);
    }
}

1 个答案:

答案 0 :(得分:2)

SOAP版本1.2 made a number of breaking changes, including the namespace of the SOAP envelope

您没有指定更改的是客户端代码还是服务器代码,但是此通信的一方或另一方不知道版本更改-可能是服务器,它正在响应未更改识别SOAP 1.2信封。如果它不支持SOAP 1.2,则不能使用此选项。