使用 ASMX 和 WCF 服务示例

更新:2007 年 11 月

本示例包括两个部分。第一个部分(即 PredictorASMX 解决方案)演示如何从客户端应用程序调用 ASMX 服务(以前称为 ASP.NET Web 服务)。第二个部分(即 Predictor 解决方案)演示如何从客户端应用程序调用 WCF (Windows Communication Foundation) 服务。

获取示例及其安装说明

  • 执行下列一项或多项操作:

    • 在“帮助”菜单上,单击“示例”。

      自述文件将显示有关示例的信息。

    • 访问 Visual Studio 2008 示例网站。该网站提供了最新版本的示例。

    • 在安装了 Visual Studio 的计算机上查找示例。默认情况下,示例和自述文件安装在驱动器号:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid 中。对于 Visual Studio 的速成版,所有示例都可联机找到。

有关更多信息,请参见定位示例文件

安全说明:

此示例代码用于阐释概念,因此仅显示与此概念相关的代码。该代码可能不符合特定环境的安全要求,因此不应原样搬用所显示的代码。我们建议您添加安全性代码和错误处理代码,以使项目更加安全可靠。Microsoft“按原样”提供此示例代码,不提供任何保证。

运行此示例

  • MSDN 网站上找到本示例,然后下载并打开该示例。

  • 按 F5。

演示

本示例包含两个示例(PredictorASMX.sln 和 Predictor.sln),用于在 Visual Basic 中演示两种不同类型的服务。两个示例都使用服务返回对客户端应用程序所提问题的回答。若要获得最佳结果,请在不同的 Visual Basic 实例中打开这两个解决方案,从而比较这两种方法。

在两个解决方案中,都由文件 PredictorService.vb 包含服务的代码。请注意每个模块顶部的属性。对于 ASMX 服务,WebServiceAttributeWebServiceBindingAttribute 属性用于将类标记为 ASMX Web 服务。WCF 服务包括一个 ServiceContractAttribute(定义为接口 IPredictorService)、一个实现该服务的类以及 Web.config 文件中指定与该实现相关联的行为的项。

如果比较这两个解决方案的 Web.config 文件,您会发现这两个文件很相似,只不过 WCF 版本具有一个附加的 system.ServiceModel 节。这一节除了标识服务的行为以外,还标识了用于服务的终结点和绑定。

两个 PredictorClient 应用程序也很相似。ASMX 示例具有一个对 PredictorSoapClient 的引用;而 WCF 示例则引用 PredictorServiceClient。如果比较这两个客户端应用程序的 App.config 文件,您会注意到两个文件都包含一个 system.ServiceModel 节。ASMX 版本使用一个 basicHttpBinding 连接到 .asmx 终结点;而 WCF 版本则使用一个 wsHttpBinding 连接到 .wcf 终结点。

请参见

任务

演练:创建和访问 WCF 服务

其他资源

托管代码中的服务