C# 未理解SOAP标头操作

C# 未理解SOAP标头操作,c#,web-services,asmx,wshttpbinding,webhttpbinding,C#,Web Services,Asmx,Wshttpbinding,Webhttpbinding,我正在尝试使用C#中的Web服务。每当我试图从web服务类调用该函数时,我都会得到一个“SOAP头操作未被理解”。我在项目中添加了指向web服务的web引用[not service reference]。已采取以下步骤添加web引用 1) 右键单击项目->添加WebReference 当我在web浏览器中检查web服务时,我在标题中发现了这一点 <wsdl:definitions name="MyService" targetNamespace="http://tempuri.org/"&

我正在尝试使用C#中的Web服务。每当我试图从web服务类调用该函数时,我都会得到一个“SOAP头操作未被理解”。我在项目中添加了指向web服务的web引用[not service reference]。已采取以下步骤添加web引用

1) 右键单击项目->添加WebReference

当我在web浏览器中检查web服务时,我在标题中发现了这一点

<wsdl:definitions name="MyService" targetNamespace="http://tempuri.org/">
    <wsp:Policy wsu:Id="WSHttpBinding_ICAIService_policy">
        <wsp:ExactlyOne><wsp:All><sp:TransportBinding>
    <wsp:Policy>

您可以向您的Web服务提供商查询吗?似乎他们需要一些定制的标题信息来处理您的请求。由服务提供商添加这样的头对于提高安全性非常常见。

删除Web引用,然后添加服务引用。

尝试使用简单的服务端点绑定BasichtpBinding。此绑定与.NET 2.0兼容。

SoapAction错误仅在我进入“配置服务引用…”属性并使用勾选的这些选项更新服务引用时才会消失

并在这两个框中打勾:

勾选生成异步操作
勾选始终生成消息契约

您的问题与
wsHttpBinding
webHttpBinding
的关系如何?Web引用使用较旧的ASMX API,不支持在这些绑定上公开的服务。实际上,Add服务引用也不支持
webHttpBinding
。是的,这为我修复了相同的错误消息。谢谢,这对我来说不合适。WsBinding不理解这些头像非常感谢,它真的帮助了我。
WebStruct webS = new WebStruct();
webS.Name = "Peter";
webS.ID = 22;

webS.Find(webS);