我正在尝试在Visual Studio 2015中创建一个应用程序,该应用程序调用在我们的某个服务器上设置的Web服务(它是第三方Web服务,所以我对它的实现一无所知)。
我可以浏览到Web服务定义,并查看wsdl和singleWsdl定义。
在Visual Studio中,我右键单击Service References文件夹并选择“Add Service Reference ...”,输入Web服务的URL(我还尝试了生成相同的wsdl和singleWsdl URL)结果)并点击“开始”。显示操作,因此我输入命名空间并单击“确定”。
此时会生成大量代码,但是,我认为这是我的问题的原因,没有对配置文件进行任何更改。
当我尝试运行我的代码时出现错误:
“发生了'System.InvalidOperationException'类型的异常 System.ServiceModel.dll但未在用户代码中处理
其他信息:无法找到默认端点元素 引用合同'CRMContactEventService.ContactEventService' ServiceModel客户端配置部分。这可能是因为 找不到您的应用程序的配置文件,或者没有找到 匹配此合同的端点元素可以在客户端中找到 元素“。
我尝试使用SvcUtil.exe生成代理,但它也不会生成任何配置文件。我尝试使用wsdl.exe生成另一个wsdl文件但只生成一个空文件。我已经尝试将singleWsdl文件保存到我的本地驱动器并使用它而不是URL但结果是相同的。
现在经过大量搜索后,我尝试手动将我认为缺少的内容添加到web.config文件中:
<system.serviceModel>
<client>
<endpoint address="http://...<url to service>.../ContactEventService.svc"
binding ="netHttpBinding"
contract = "CRMContactEventService.ContactEventService" />
</client>
</system.serviceModel>
这会更改错误消息:
“System.ServiceModel.EndpointNotFoundException”类型的例外 发生在mscorlib.dll中但未在用户代码中处理
附加信息:没有端点收听 可以的http://....../ContactEventService.svc 接受消息。这通常是由不正确的地址或 SOAP动作。有关更多详细信息,请参阅InnerException(如果存在)。“
InnerException包含:
“远程服务器返回错误:(404)Not Found。”
我已经为web.config文件中的绑定参数尝试了几个不同的值,因为我不知道使用哪个,但是大多数都返回上面的错误或其他一些错误,这清楚地表明我做了一个糟糕的选择
我一直在研究这个问题太长时间了,我看不出如何使这个工作,甚至是我的工作或Web服务的问题是否存在问题。
答案 0 :(得分:0)
您是否可以首先手动对实际服务端点进行SOAP调用,并检查您是否获得了预期结果?免费的SoapUI客户端对于此类故障排除非常有用。 (话虽如此,如果远程端点正确响应,我认为你正在找到解决这个问题的正确途径。)