c# - 从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);
}
}
解决方案
SOAP 1.2 版进行了许多重大更改,包括 SOAP 信封的名称空间。
您没有指定您更改的是客户端代码还是服务器代码,但此通信的一方或另一方不知道版本更改 - 可能是服务器,它正在响应它无法识别 SOAP 1.2 信封。如果它不支持 SOAP 1.2,则不能使用此选项。
推荐阅读
- graphql - 为什么 GraphQL 被称为“API”而不是任何数据的查询语言?
- azure-data-factory - Azure 数据流筛选不同的行
- microsoft-graph-api - 具有依赖项的 Microsoft Graph API 批处理请求?
- postgresql - 如何修复:错误将映射结果集转换为返回类型
- java - 找不到符号`asIterator()`
- excel - 我可以命名一组工作簿以供以后在模块中使用吗?
- python - 从文件中查找路径的最有效方法是什么?
- c# - 如何在 Telegram bot 中创建弹出通知?
- php - XPath 表达式获取节点并排除其中的节点
- android - 如何从 mime 类型确定文件扩展名?