WCF入门教程.docx

上传人:b****4 文档编号:5064525 上传时间:2023-05-08 格式:DOCX 页数:20 大小:27.04KB
下载 相关 举报
WCF入门教程.docx_第1页
第1页 / 共20页
WCF入门教程.docx_第2页
第2页 / 共20页
WCF入门教程.docx_第3页
第3页 / 共20页
WCF入门教程.docx_第4页
第4页 / 共20页
WCF入门教程.docx_第5页
第5页 / 共20页
WCF入门教程.docx_第6页
第6页 / 共20页
WCF入门教程.docx_第7页
第7页 / 共20页
WCF入门教程.docx_第8页
第8页 / 共20页
WCF入门教程.docx_第9页
第9页 / 共20页
WCF入门教程.docx_第10页
第10页 / 共20页
WCF入门教程.docx_第11页
第11页 / 共20页
WCF入门教程.docx_第12页
第12页 / 共20页
WCF入门教程.docx_第13页
第13页 / 共20页
WCF入门教程.docx_第14页
第14页 / 共20页
WCF入门教程.docx_第15页
第15页 / 共20页
WCF入门教程.docx_第16页
第16页 / 共20页
WCF入门教程.docx_第17页
第17页 / 共20页
WCF入门教程.docx_第18页
第18页 / 共20页
WCF入门教程.docx_第19页
第19页 / 共20页
WCF入门教程.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

WCF入门教程.docx

《WCF入门教程.docx》由会员分享,可在线阅读,更多相关《WCF入门教程.docx(20页珍藏版)》请在冰点文库上搜索。

WCF入门教程.docx

WCF入门教程

WCF入门教程

目录

WCF入门教程1

本节内容2

1、如何:

定义服务协定4

1.1使用接口创建WindowsCommunicationFoundation协定4

1.2示例5

2、如何:

实现服务协定5

2.1实现WCF服务协定5

2.2示例6

2.3编译代码6

3、如何:

承载和运行基本的服务6

3.1为服务配置基址6

3.2承载服务6

3.3验证服务是否正常运行7

3.4示例7

4、如何:

创建客户端8

4.1创建WindowsCommunicationFoundation客户端8

4.2示例10

4.3配置WindowsCommunicationFoundation客户端11

5、如何:

使用客户端13

5.1使用WindowsCommunicationFoundation客户端14

5.2示例14

6、入门教程疑难解答14

6.1问题:

15

6.2问题:

15

6.3问题:

15

6.4问题:

15

6.5问题:

16

6.6问题:

16

6.7问题:

16

本节中包含的主题旨在帮助您快速了解WindowsCommunicationFoundation(WCF)编程体验。

这些主题要根据本主题底部的列表中的顺序完成。

通过学习本教程,您可以初步了解创建WCF服务和客户端应用程序所需的步骤。

服务是一种构造,它公开一个或多个终结点,其中每个终结点都公开一项或多项服务操作。

服务的终结点指定下列信息:

服务所在的位置;一个绑定,其中包含客户端必须与服务进行通信的信息;一个协定,用于定义服务向其客户端提供的功能。

在完成本教程中的系列主题之后,您将会得到一个正在运行的服务,以及一个可以调用该服务操作的客户端。

前三个主题描述如何使用协定定义服务,如何实现服务,以及如何在代码中配置服务、承载服务和运行服务。

所创建的服务是自承载服务,客户端和服务都在同一计算机上运行。

服务使用代码而非配置进行配置。

另外还可以将服务承载于Internet信息服务(IIS)下。

有关如何执行此操作的更多信息,请参见“如何:

如何:

在IIS中承载WCF服务”。

也可以在配置文件中配置服务。

有关使用配置文件的更多信息,请参见使用配置文件配置服务。

后三个主题描述如何创建客户端代理,如何配置客户端应用程序,以及如何创建和使用可以访问服务功能的客户端。

服务会发布可以访问的元数据,这些数据定义了客户端应用程序与服务操作进行通信所需的构造。

WCF提供了一个ServiceModelMetadataUtilityTool(Svcutil.exe)来自动完成以下过程:

访问发布的这些元数据,然后使用这些元数据来构造和配置服务的客户端应用程序。

本节中的所有主题均假定您使用VisualStudio2008作为开发环境。

如果您使用的是其他开发环境,请忽略特定于VisualStudio的说明。

注意:

如果运行的是WindowsVista,则必须通过在“开始”菜单上右击MicrosoftVisualStudio2008,然后选择“以管理员身份运行”的方式来启动VisualStudio。

若要始终以管理员身份启动VisualStudio2008,可以创建一个快捷方式,右击该快捷方式,选择“属性”,选择“兼容性”选项卡,然后选中“请以管理员身份运行该程序”复选框。

在使用此快捷方式启动VisualStudio2008时,会总是以管理员身份运行。

有关可以下载到硬盘中并运行的示例应用程序,请参见WindowsCommunicationFoundationSamples中的主题。

有关专门针对本主题的示例,请参见GettingStartedSample。

有关创建服务和客户端的更深入信息,请参见基本WCF编程。

本节内容

如何:

定义WindowsCommunicationFoundation服务协定

描述如何使用用户定义的接口创建WCF协定。

协定用于定义服务向外界提供的功能,并向外界的潜在用户描述如何与服务进行通信。

如何:

实现WindowsCommunicationFoundation服务协定

描述如何实现服务协定。

创建了协定后,必须在一个从定义协定的接口继承的类中实现服务所提供的功能。

如何:

承载和运行基本的WindowsCommunicationFoundation服务

描述如何在代码中配置服务的终结点,以及如何在控制台应用程序内承载服务和启动服务。

若要激活服务,必须在运行时环境中配置和承载服务。

此环境将创建服务并控制其上下文和生存期。

如何:

创建WindowsCommunicationFoundation客户端

描述如何从WCF服务检索用于创建WCF客户端的元数据。

此过程使用由WCF提供的ServiceModelMetadataUtilityTool(Svcutil.exe)。

如何:

配置基本WindowsCommunicationFoundation客户端

描述如何配置使用ServiceModelMetadataUtilityTool(Svcutil.exe)创建的基本客户端。

配置客户端需要指定客户端用于访问服务的终结点。

如何:

使用WindowsCommunicationFoundation客户端

描述如何使用ServiceModelMetadataUtilityTool(Svcutil.exe)生成的WCF客户端代理来调用服务所提供的功能。

1、如何:

定义服务协定

这是创建基本WindowsCommunicationFoundation(WCF)服务和可以调用该服务的客户端所需的六项任务中的第一项任务。

有关全部六项任务的概述,请参见入门教程主题。

创建基本WCF服务时,第一项任务是定义协定。

协定指定服务支持的操作。

可以将操作视为一个Web服务方法。

通过定义C++、C#或VB接口可创建协定。

接口中的每个方法都对应于特定的服务操作。

每个接口都必须将ServiceContractAttribute应用于自身,而每个操作都必须将OperationContractAttribute应用于自身。

如果接口中的一个方法具有ServiceContractAttribute而没有OperationContractAttribute,则不公开该方法。

在操作过程后面的示例中提供了用于此任务的代码。

1.1使用接口创建WindowsCommunicationFoundation协定

1.通过在“开始”菜单中右击“VisualStudio2008”并选择“以管理员身份运行”,以管理员身份打开该程序。

2.创建新的控制台应用程序项目。

在“新建项目”对话框中,选中“VisualBasic”或“VisualC#”,并选择“控制台应用程序”模板,并命名为Service。

使用默认的位置。

3.将默认的Service命名空间更改为Microsoft.ServiceModel.Samples。

4.将对System.ServiceModel.dll的引用添加到项目。

1.在“解决方案资源管理器”中,右击项目文件夹下的“引用”文件夹,然后选择“添加引用”。

2.单击“添加引用”对话框中的“浏览”选项卡,导航到“c:

\Windows\Microsoft.Net\Framework\v3.0\WindowsCommunicationFoundation”,选择“System.ServiceModel.dll”,然后单击“确定”。

注意:

在使用命令行编译器(例如Csc.exe或Vbc.exe)时,还必须提供程序集的路径。

例如,在运行WindowsVista的计算机上,默认情况下的路径为:

Windows\Microsoft.NET\Framework\v3.0\WindowsCommunicationFoundation。

5.为System.ServiceModel命名空间添加一个using语句(在VisualBasic中为Imports)。

6.定义一个名为ICalculator的新接口,并向该接口应用Namespace值为“http:

//Microsoft.ServiceModel.Samples”的ServiceContractAttribute属性。

显式指定命名空间是一种最佳做法,因为这样可防止将默认命名空间值添加到协定名称。

注意:

使用属性来批注接口或类时,可以从属性名称中去掉“Attribute”部分。

因此ServiceContractAttribute将变成[ServiceContract]

7.在接口中为ICalculator协定公开的每个操作(加、减、乘和除)声明一个方法,并对希望作为公共WCF协定的一部分公开的每个方法应用OperationContractAttribute属性。

1.2示例

下面的代码示例演示一个定义服务协定的基本接口。

现在已创建接口。

生成该项目以确保不存在编译错误,然后按照如何:

实现WindowsCommunicationFoundation服务协定中的说明实现接口。

有关疑难解答信息,请参见入门教程疑难解答。

2、如何:

实现服务协定

这是创建基本WindowsCommunicationFoundation(WCF)服务和可以调用该服务的客户端所需的六项任务中的第二项任务。

有关全部六项任务的概述,请参见入门教程主题。

创建WCF服务要求首先创建使用接口定义的协定。

有关创建该接口的更多信息,请参见如何:

定义WindowsCommunicationFoundation服务协定。

本示例中显示的下一步骤是实现接口。

这涉及到创建一个名为CalculatorService的类,该类实现用户定义的ICalculator接口。

在操作过程后面的示例中提供了用于此任务的代码。

2.1实现WCF服务协定

1.在定义了ICalculator接口的同一文件中创建一个名为CalculatorService的新类。

CalculatorService实现ICalculator接口。

2.在CalculatorService类中实现在ICalculator接口中定义的每个方法。

注意:

已经添加写入输出代码以方便测试。

2.2示例

下面的代码示例演示定义协定的接口和接口的实现。

现在已创建并实现了服务协定。

生成该解决方案以确保不存在编译错误,然后按照如何:

承载和运行基本的WindowsCommunicationFoundation服务中的说明运行服务。

有关疑难解答信息,请参见入门教程疑难解答。

2.3编译代码

如果使用的是命令行编译器,则必须引用System.ServiceModel程序集。

3、如何:

承载和运行基本的服务

这是创建基本WindowsCommunicationFoundation(WCF)服务和可以调用该服务的客户端所需的六项任务中的第三项任务。

有关全部六项任务的概述,请参见入门教程主题。

本主题描述如何运行基本的WindowsCommunicationFoundation(WCF)服务。

此过程包含以下步骤:

∙为服务创建基址。

∙为服务创建服务主机。

∙启用元数据交换。

∙打开服务主机。

在过程后面的以下示例中提供了在此任务中编写的代码的完整清单。

将下面的代码添加到Program类中定义的Main()方法。

此类是在您创建Service解决方案时生成的。

3.1为服务配置基址

1.为服务的基址创建Uri实例。

此URI指定HTTP方案、本地计算机、端口号8000,以及服务协定中为服务命名空间指定的服务路径ServiceModelSample/Service。

3.2承载服务

1.导入System.ServiceModel.Description命名空间。

这行代码应该与using或imports语句的其余部分一起放置在Program.cs/Program.vb文件的顶部。

2.创建一个新的ServiceHost实例以承载服务。

必须指定实现服务协定和基址的类型。

对于此示例,基址为http:

//localhost:

8000/ServiceModelSamples/Service,CalculatorService为实现服务协定的类型。

3.添加一个捕获CommunicationException的try-catch语句,并在接下来的三个步骤中将该代码添加到try块中。

catch子句应该显示错误信息,然后调用selfHost.Abort()。

4.添加公开服务的终结点。

为此,必须指定终结点公开的协议、绑定和终结点的地址。

对于此示例,将ICalculator指定为协定,将WSHttpBinding指定为绑定,并将CalculatorService指定为地址。

在这里请注意,终结点地址是相对地址。

终结点的完整地址是基址和终结点地址的组合。

在此例中,完整地址是http:

//localhost:

8000/ServiceModelSamples/Service/CalculatorService。

5.启用元数据交换。

为此,添加服务元数据行为。

首先创建一个ServiceMetadataBehavior实例,将HttpGetEnabled属性设置为true,然后为服务添加新行为。

有关发布元数据时出现的安全问题的更多信息,请参见元数据的安全注意事项。

6.打开ServiceHost并等待传入消息。

用户按Enter键时,关闭ServiceHost。

3.3验证服务是否正常运行

1.从VisualStudio内部运行service.exe。

在WindowsVista上运行时,必须使用管理员特权运行服务。

由于VisualStudio是使用管理员特权运行的,因此service.exe也是使用管理员特权运行的。

也可以启动新的命令提示,使用管理员特权运行它,并在其中运行service.exe。

2.打开InternetExplorer,并浏览到服务的调试页(网址为http:

//localhost:

8000/ServiceModelSamples/Service)。

3.4示例

下面的示例包括本教程中前面步骤的服务协定和实现,并将服务承载于控制台应用程序中。

将以下内容编译为可执行文件Service.exe。

在编译代码时,务必引用System.ServiceModel.dll。

注意:

此类服务需要在计算机上注册HTTP地址以进行侦听的权限。

管理员帐户具有此权限,但必须授予非管理员帐户对HTTP命名空间的权限。

有关如何配置命名空间保留的更多信息,请参见配置HTTP和HTTPS。

在VisualStudio下运行时,必须使用管理员特权运行service.exe。

此时服务正在运行。

继续执行如何:

创建WindowsCommunicationFoundation客户端中的步骤。

有关疑难解答信息,请参见入门教程疑难解答。

4、如何:

创建客户端

这是创建基本WindowsCommunicationFoundation(WCF)服务和可以调用该服务的客户端所需的六项任务中的第四项任务。

有关全部六项任务的概述,请参见入门教程主题。

本主题描述如何检索WCF服务中的元数据,以及如何使用这些元数据创建可以访问该服务的WCF代理。

此任务是通过使用WCF所提供的ServiceModelMetadataUtilityTool(Svcutil.exe)完成的。

此工具可以获取服务的元数据,并使用所选语言生成代理的托管源代码文件。

除了创建客户端代理外,该工具还会为客户端创建配置文件,以使客户端应用程序能够连接至其某个终结点上的服务。

客户端应用程序会使用生成的代理创建WCF客户端对象。

如何:

使用WindowsCommunicationFoundation客户端中对此过程进行了描述。

在操作过程后面的示例中提供了用于此任务产生的客户端的代码。

4.1创建WindowsCommunicationFoundation客户端

1.通过执行以下步骤,在中在当前解决方案中为客户端创建一个新项目:

1.在包含该服务的同一解决方案中的“解决方案资源管理器”(位于右上角)中,右击当前解决方案(而不是项目),选择“添加”,然后选择“新项目”。

2.在“添加新项目”对话框中,选择“VisualBasic”或“VisualC#”,选择“控制台应用程序”模板,然后将其命名为Client。

使用默认的位置。

3.单击“确定”。

2.为项目添加对System.ServiceModel.dll的引用:

1.在“解决方案资源管理器”中的“Client”项目下右击“引用”文件夹,然后选择“添加引用”。

2.选择“最近”选项卡,并从列表框选择“System.ServiceModel.dll”,然后单击“确定”。

因为已在本教程的第一步添加了对该程序集的引用,所以该程序集现在列在“最近”选项卡中。

如果在“最近”选项卡中看不到该程序集,请选择“浏览”选项卡并导航至C:

\Windows\Microsoft.NET\Framework\v3.0\WindowsCommunicationFoundation,然后从这里选择该程序集。

注意:

在使用命令行编译器(例如Csc.exe或Vbc.exe)时,还必须提供程序集的路径。

例如,在运行WindowsVista的计算机上,默认情况下的路径为:

Windows\Microsoft.NET\Framework\v3.0\WindowsCommunicationFoundation。

3.在生成的Program.cs或Program.vb文件中为System.ServiceModel命名空间添加一个using语句(在VisualBasic中为Imports)。

VisualBasic

复制代码

ImportsSystem.ServiceModel;

C#

复制代码

usingSystem.ServiceModel;

4.启动在前面的步骤中创建的服务。

有关更多信息,请参见如何:

承载和运行基本的WindowsCommunicationFoundation服务。

5.通过执行以下步骤,使用适当的开关运行ServiceModelMetadataUtilityTool(SvcUtil.exe)以创建客户端代码和配置文件:

1.通过选择“开始”菜单中的“MicrosoftWindowsSDK”项下的“CMDShell”,启动WindowsSDK控制台会话。

2.导航到要放置客户端代码的目录。

如果创建该客户端项目时使用了默认设置,则目录为C:

\Users\<用户名>\Documents\VisualStudio2005\Projects\Service\Client。

3.将命令行工具ServiceModelMetadataUtilityTool(SvcUtil.exe)与适当的开关一起使用以创建客户端代码。

下面的示例生成服务的代码文件和配置文件。

[VisualBasic]

复制代码

svcutil.exe/language:

vb/out:

generatedProxy.vb/config:

app.confighttp:

//localhost:

8000/ServiceModelSamples/service

[C#]

复制代码

svcutil.exe/language:

cs/out:

generatedProxy.cs/config:

app.confighttp:

//localhost:

8000/ServiceModelSamples/service

默认情况下,将在一个以服务命名的文件(例如,在本示例中将为CalculatorService.cs或CalculatorService.vb,其扩展名与编程语言相对应:

.vb对应于VisualBasic,.cs对应于C#)中生成客户端代理代码。

/out开关会将客户端代理文件的名称更改为generatedProxy.cs。

/config开关会将客户端配置文件的名称从默认的output.config更改为app.config。

请注意,这两个文件都是在C:

\Users\<用户名>\Documents\VisualStudio2005\Projects\Service\Client目录中生成的。

6.在VisualStudio中将生成的代理添加到该客户端项目中,方法是在“解决方案资源管理器”中右击该客户端项目,选择“添加”,然后选择“现有项”。

然后选择在上一步中生成的generatedProxy.cs文件。

4.2示例

此示例演示由ServiceModelMetadataUtilityTool(Svcutil.exe)生成的客户端代码。

现在您已经创建了一个WindowsCommunicationFoundation(WCF)客户端。

请继续执行如何:

配置基本WindowsCommunicationFoundation客户端中的步骤配置该客户端。

有关疑难解答信息,请参见入门教程疑难解答。

如何:

配置客户端

这是创建基本WindowsCommunicationFoundation(WCF)服务和可以调用该服务的客户端所需的六项任务中的第五项任务。

有关全部六项任务的概述,请参见入门教程主题。

本主题要将使用ServiceModelMetadataUtility(Svcutil.exe)生成的客户端配置文件添加到客户端项目中,并解释客户端配置元素的内容。

配置客户端包括指定客户端用于访问服务的终结点。

每个终结点都有一个地址、一个绑定和一个协定,所有这些元素都必须在配置客户端的过程中指定。

在过程后面的示例中提供了为客户端生成的配置文件的内容。

4.3配置WindowsCommunicationFoundation客户端

1.在VisualStudio中,将在前一过程如何:

创建WindowsCommunicationFoundation客户端中生成的App.config配置文件添加到客户端项目中。

在“解决方案资源管理器”中右击客户端项目,选择“添加”,然后选择“现有项”。

然后,从C:

\Users\<用户名>\Documents\VisualStudio2005\Projects\Service\Client目录中选择App.config配置文件。

(之所以命名为App.config文件,是因为在使用Svcutil.exe工具生成此文件时使用了/config:

app.config开关)。

单击

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2