2011-05-18 56 views
4

我想在C#中使用web服务。每当我尝试从Web服务类调用函数时,我都会得到一个“SOAP标头Action not to understand”。我添加了将Web服务指向项目的Web引用[不是服务引用]。采取下面的步骤来添加Web引用SOAP头行动不明白

1)右键单击项目 - >添加Web引用

当我检查了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服务功能

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

webS.Find(webS); 
+1

如何'wsHttpBinding'和'webHttpBinding'有关你的问题? Web引用使用较早的ASMX API,它不支持在这些绑定中公开的服务。实际上'webHttpBinding'也不被Add service reference支持。 – 2011-05-18 21:19:01

回答

0

您可以与您的Web服务提供商检查?似乎他们需要一些自定义标题信息来处理您的请求。服务提供商添加这样的头文件对于提高安全性非常普遍。

4

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

+1

是的,这为我修复了同样的错误信息。谢谢。 – hamish 2014-03-13 20:53:58

+0

这并没有解决我的问题。 WsBinding不理解这些标题 – 2014-10-02 07:46:08

2

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

-2

这里是一些漂亮的代码太多,如果你需要它:

//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; }; 
+5

-1:这与问题有什么关系? – 2014-05-06 03:27:29

0

SOAPACTION错误只走了,当我走进了“配置服务引用...”性能和更新的服务参考使用这些选项打勾。

和打勾这两个框:

TICK生成异步操作 TICK始终生成消息协定