从.net代码

时间:2015-12-18 15:20:41

标签: asp.net web-services

我正在尝试在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服务的问题是否存在问题。

1 个答案:

答案 0 :(得分:0)

您是否可以首先手动对实际服务端点进行SOAP调用,并检查您是否获得了预期结果?免费的SoapUI客户端对于此类故障排除非常有用。 (话虽如此,如果远程端点正确响应,我认为你正在找到解决这个问题的正确途径。)