SOAP标题Action未被理解

时间:2011-05-18 21:01:35

标签: c# web-services asmx wshttpbinding webhttpbinding

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

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

当我在网络浏览器中检查网络服务时,我在标题

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

我已完成以下代码来调用Web服务功能

WebStruct webS = new WebStruct();
webS.Name = "Peter";
webS.ID = 22;

webS.Find(webS);

5 个答案:

答案 0 :(得分:4)

删除Web引用并改为添加服务引用。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

您可以咨询您的网络服务提供商吗?似乎他们需要一些自定义标头信息来处理您的请求。服务提供商添加此类标头非常常见,以提高安全性。

答案 3 :(得分:0)

SoapAction错误只有在我进入&#34;配置服务参考...&#34;属性并更新了服务参考,并勾选了这些选项。

并勾选这两个方框:

TICK生成异步操作 TICK始终生成消息合同

答案 4 :(得分:-3)

如果你需要它,这里有一些不错的代码:

//Set username and password for Basic Auth
service.ClientCredentials.UserName.UserName = "usernamehere";
service.ClientCredentials.UserName.Password = "passwordhere";

//Ignore invalid SSL certs
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };