首页 > 解决方案 > 从soap11切换到soap12

问题描述

我从 C# 切换了我在 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);
    }
}

标签: c#soap

解决方案


SOAP 1.2 版进行了许多重大更改,包括 SOAP 信封的名称空间

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


推荐阅读