我从
切换了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);
}
}
答案 0 :(得分:2)
SOAP版本1.2 made a number of breaking changes, including the namespace of the SOAP envelope。
您没有指定更改的是客户端代码还是服务器代码,但是此通信的一方或另一方不知道版本更改-可能是服务器,它正在响应未更改识别SOAP 1.2信封。如果它不支持SOAP 1.2,则不能使用此选项。