WCF快速入门——全自动方式编写WCF入门程序
2014-07-18 16:24
239 查看
本人认为编写WCF程序有三个方式:
1、全自动方式编写
2、半自动方式编写
3、纯手工方式编写
全自动方式[b]编写WCF程序 [/b]
为什么称为全自动编写方式,主要是因为服务使用系统模板创建,使用工具配置服务,并用IIS作为宿主,我们只需要编写一点点的代码即可。
例子的功能是通过WCF得到字符串“Hello,Wcf自动服务调用成功!”。
建立步骤
参照“WCF快速入门——WCF介绍”中的“WCF程序的基本架构”图,我们可以知道要建立三个项目:
1)服务
2)运行服务的平台,因为此例使用IIS作为宿主,所以此项目不需要建立。
3)客户端
注:以下程序用VS2010编写。
一、建立方案
1、新建一个空方案WcfAuto。
2、在空方案WcfAuto中建立二个项目,如下表。
修改项目中的一些名称,最终此方案如下图。
二、编写服务,即编写WcfAutoService项目
根据“WCF程序的基本架构图”,可以看出服务主要有地址、契约、绑定三部分组成。在建立WCF Service Application项目时,系统已帮我们建好了契约和服务类型。
2.1、编写契约
契约其实是一个接口修改。修改WcfAutoService项目中的IAutoService,变成下边代码。
注:契约用ServiceContract标识,操作用OperationContract标识。
namespace WcfAutoService
{
/*
契约
*/
[ServiceContract]
public interface IAutoService
{
[OperationContract]
string GetData();
}
}
2.2、编写服务类型
服务类型是契约实现。修改WcfAutoService项目中的AutoService,变成下边代码。
namespace WcfAutoService
{
/*
服务类型
*/
public class AutoService : IAutoService
{
public string GetData()
{
return "Hello,Wcf自动服务调用成功!";
}
}
}
2.3 修改Web.Config
将 “WcfAutoService”项目中Web.Config底部的system.serviceModel部分变成下列代码。服务配置方法请看“WCF
宿主配置文件app.config 的简单配置 说明”。
<system.serviceModel>
<services>
<service behaviorConfiguration="WcfAutoService.Service1Behavior"
name="WcfAutoService.AutoService">
<endpoint address="" binding="wsHttpBinding" contract="WcfAutoService.IAutoService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WcfAutoService.Service1Behavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
这样基本服务已建好。
三、编写运行服务,即编写宿主
服务编写好后要让其运行。“WCF Service Application”项目运行有两种方式,一个是通过IIS运行服务,另一种是自己建立运行服务的程序。因为全自动方式编写WCF入门程序,所以这里采用IIS来启动WCF,即用IIS作为WCF宿主。
使用IIS运行服务方法:
1)我们找到WcfAutoService项目的根目录,并将此目录设置成虚拟目录。
修改虚拟目录的属性:允许匿名访问;设置默认启动文档为“AutoService.svc”。如下图。
2)测试服务
在游览器地址中输入“http://localhost/WcfAutoService/AutoService.svc”。会看到下边界面。表示WCF服务已可以运行。
四、编写客户端
4.1、添加服务引用
在“UserClient”项目上右键->“添加服务引用(Add Service Reference)”。如下图。
在地址中输入刚刚在IIS配置的虚拟目录中svc的路径,“http://localhost/WcfAutoService/AutoService.svc”。点“Go”,运行正常会出现下图。在Namespace中输入此服务在客户端的命名空间。
4.2、编写客户端代码
在Program.cs中调用服务,代码如下。
namespace UserClient
{
class Program
{
static void Main(string[] args)
{
using (WcfAutoService.AutoServiceClient client = new WcfAutoService.AutoServiceClient())
{
string result = client.GetData();
Console.WriteLine("Wcf调用结果是:{0}",result);
Console.ReadKey();
}
}
}
}
4.3、运行程序
将“UserClient”项目设为启动项目并运行,出现结果如下图。
这样“全自动方式编写WCF程序”就完成了。其中有一些如“宿主”、“契约”、“终结点”等关键词语关没有作详细的说明,不过在编写完三个入门程序后在理解起来会更容易些。
源码下载:WcfAuto.rar
1、全自动方式编写
2、半自动方式编写
3、纯手工方式编写
全自动方式[b]编写WCF程序 [/b]
为什么称为全自动编写方式,主要是因为服务使用系统模板创建,使用工具配置服务,并用IIS作为宿主,我们只需要编写一点点的代码即可。
例子的功能是通过WCF得到字符串“Hello,Wcf自动服务调用成功!”。
建立步骤
参照“WCF快速入门——WCF介绍”中的“WCF程序的基本架构”图,我们可以知道要建立三个项目:
1)服务
2)运行服务的平台,因为此例使用IIS作为宿主,所以此项目不需要建立。
3)客户端
注:以下程序用VS2010编写。
一、建立方案
1、新建一个空方案WcfAuto。
2、在空方案WcfAuto中建立二个项目,如下表。
项目名称 | 类型 | 用途 |
WcfAutoService | WCF Service Application | 用于建立WCF服务 |
UserClient | Console Application | 客户端。用于调用WCF |
二、编写服务,即编写WcfAutoService项目
根据“WCF程序的基本架构图”,可以看出服务主要有地址、契约、绑定三部分组成。在建立WCF Service Application项目时,系统已帮我们建好了契约和服务类型。
2.1、编写契约
契约其实是一个接口修改。修改WcfAutoService项目中的IAutoService,变成下边代码。
注:契约用ServiceContract标识,操作用OperationContract标识。
namespace WcfAutoService
{
/*
契约
*/
[ServiceContract]
public interface IAutoService
{
[OperationContract]
string GetData();
}
}
2.2、编写服务类型
服务类型是契约实现。修改WcfAutoService项目中的AutoService,变成下边代码。
namespace WcfAutoService
{
/*
服务类型
*/
public class AutoService : IAutoService
{
public string GetData()
{
return "Hello,Wcf自动服务调用成功!";
}
}
}
2.3 修改Web.Config
将 “WcfAutoService”项目中Web.Config底部的system.serviceModel部分变成下列代码。服务配置方法请看“WCF
宿主配置文件app.config 的简单配置 说明”。
<system.serviceModel>
<services>
<service behaviorConfiguration="WcfAutoService.Service1Behavior"
name="WcfAutoService.AutoService">
<endpoint address="" binding="wsHttpBinding" contract="WcfAutoService.IAutoService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WcfAutoService.Service1Behavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
这样基本服务已建好。
三、编写运行服务,即编写宿主
服务编写好后要让其运行。“WCF Service Application”项目运行有两种方式,一个是通过IIS运行服务,另一种是自己建立运行服务的程序。因为全自动方式编写WCF入门程序,所以这里采用IIS来启动WCF,即用IIS作为WCF宿主。
使用IIS运行服务方法:
1)我们找到WcfAutoService项目的根目录,并将此目录设置成虚拟目录。
修改虚拟目录的属性:允许匿名访问;设置默认启动文档为“AutoService.svc”。如下图。
2)测试服务
在游览器地址中输入“http://localhost/WcfAutoService/AutoService.svc”。会看到下边界面。表示WCF服务已可以运行。
四、编写客户端
4.1、添加服务引用
在“UserClient”项目上右键->“添加服务引用(Add Service Reference)”。如下图。
在地址中输入刚刚在IIS配置的虚拟目录中svc的路径,“http://localhost/WcfAutoService/AutoService.svc”。点“Go”,运行正常会出现下图。在Namespace中输入此服务在客户端的命名空间。
4.2、编写客户端代码
在Program.cs中调用服务,代码如下。
namespace UserClient
{
class Program
{
static void Main(string[] args)
{
using (WcfAutoService.AutoServiceClient client = new WcfAutoService.AutoServiceClient())
{
string result = client.GetData();
Console.WriteLine("Wcf调用结果是:{0}",result);
Console.ReadKey();
}
}
}
}
4.3、运行程序
将“UserClient”项目设为启动项目并运行,出现结果如下图。
这样“全自动方式编写WCF程序”就完成了。其中有一些如“宿主”、“契约”、“终结点”等关键词语关没有作详细的说明,不过在编写完三个入门程序后在理解起来会更容易些。
源码下载:WcfAuto.rar
相关文章推荐
- WCF快速入门——全自动方式编写WCF入门程序
- WCF快速入门——纯手工方式编写WCF入门程序
- WCF快速入门——半自动方式编写WCF入门程序
- WCF快速入门——纯手工方式编写WCF入门程序
- WCF快速入门——半自动方式编写WCF入门程序
- 7-2 一帮一(10 分) “一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名
- 第一章 快速入门 编写简单的C++程序
- MiniUI快速入门教程(二)编写第一个MiniUI程序:Hello, world!
- COM程序编写入门(全文-1)
- 如何编写一个自动投票程序
- java编写TCP方式的通信程序
- 使用Delphi编写自动关闭Windows信使服务窗体程序
- COM程序编写入门(全文-2)
- Visual C# 2005快速入门之编写方法
- 编写程序自动登录Gmail
- java编写TCP&&UDP方式的通信程序
- 怎样编写支持多国语言的程序, 让它能够根据所运行的操作系统自动显示相应的文字。
- 如何使用 VB 编写自动反安装的程序?
- 自己动手编写devExpress组件自动安装程序
- 基于MFC的编写线程快速入门