我正在尝试使用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);
答案 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; };