在.NET 4.0中使用XML Web服务

时间:2011-04-23 05:16:15

标签: c# .net asp.net web-services

我正在尝试使用此网站提供的网络服务:http://www.averittexpress.com/services/technology/webservices.html

我正在尝试使用的网络服务是页面上的第一个:http://webservices.averittexpress.com/TransitTimeService

我之前从未使用过Web服务,所以我不知道从哪里开始。我已经完成了搜索,但所有文章和博客帖子都已有近10年的历史了。

我尝试在Visual Studio中为我的项目添加一个Web引用并输入服务URL,但我发现了一个错误。

有人能引导我朝着正确的方向前进吗?

修改

错误讯息:

HTML文档不包含Web服务发现信息。 下载“http://webservices.averittexpress.com/TransitTimeService/$metadata”时出错。 请求失败,HTTP状态为404:Not Found。

编辑2:

我在添加网络参考时使用http://webservices.averittexpress.com/TransitTimeService?WSDL。在预览窗口中加载了XML,但我仍然收到这些错误:

*文件已被理解,但无法处理。    - WSDL文档包含无法解析的链接。    - 下载“http://webservices.averittexpress.com/TransitTimeService/TransitTimeService_schema1.xsd”时出错。    - 请求失败,HTTP状态为404:Not Found。*

这些行在预览窗口中以红色突出显示:

<definitions name="TransitTimeService"
    targetNamespace="http://webservices.averittexpress.com/TransitTimeService"
    xmlns="http://schemas.xmlsoap.org/wsdl/" <!-- highlighted red -->
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" <!-- highlighted red -->
    xmlns:tns="http://webservices.averittexpress.com/TransitTimeService" <!-- highlighted red -->
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> <!-- highlighted red -->

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

使用以下网址:http://webservices.averittexpress.com/TransitTimeService?WSDL

您可以将WSDL导入为Web引用,也可以通过执行以下操作手动创建代理:

  • 打开Visual Studio命令提示符(“开始”&gt; Visual Studio 2010&gt; Visual Studio命令提示符)
  • cd到您的代码目录
  • svcutil http://webservices.averittexpress.com/TransitTimeService?WSDL,应该生成一个名为TransitTimeService.cs的客户端代理或类似的东西。
  • 请参阅svcutil文档,了解根据需要自定义输出文件。

答案 2 :(得分:0)

当您想要创建Web或服务引用时,您将需要Web服务的WSDL。对于大多数标准Web服务,您可以通过将?wsdl附加到基本URL的末尾来获取服务的WSDL,如下所示:

http://webservices.averittexpress.com/TransitTimeService?wsdl

在这种情况下,上面的网址会重定向到:

http://webservices.averittexpress.com/TransitTimeService/TransitTimeService.wsdl

您应该能够使用其中任何一个来生成Web或服务引用。但是,在此特定情况下,TransitTimeService.wsdl中引用的文件似乎在该服务器上不存在:TransitTimeService_schema1.xsd。当我尝试为该WSDL创建服务引用时,我得到了404表示模式文件不存在。下面的URL是架构所在的位置,但它不存在,因此您可能无法轻松生成此服务的引用。

http://webservices.averittexpress.com/TransitTimeService/TransitTimeService_schema1.xsd