网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

使用配置文件构建和使用WCF服务

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/13
nbsp;   </serviceBehaviors>

</behaviors>

 

2、 客户端

2.1.    引用service

客户端要访问服务端的服务,首先要知道服务端的服务提供了什么方法,就是要知道服务的Contract。如何取得服务端的Contract有几种方法,前一篇文章有讲述,这里不再赘述,这里同样采用最方便的在项目中添加Service reference来引用service。

在vs2005中安装了WCF的extention后,在项目的References上点击右键,会多出来一个“Add Service Reference”的选项,这就是用来引用WCF服务的,引用地址就是服务端设置的http的baseAddress。

在这里引用WCF服务,跟使用Svcutil.exe命令一样,会在项目中生成同样的两个文件。

2.2.    生成客户端service代理实例和配置文件

引用服务后,客户端生成了配置文件和包含了Contract和本地代理类的cs文件。

引用WCF服务后,还会在同时给每个Contract不同的Endpoint生成一个继承自System.ServiceModel.ClientBase的本地代理类。

客户端可以直接使用多个重载的代理类构造方法实例化这些代理类。如果要使用配置文件,有这么几个构造方法可用:

1、public ServiceClient()

2、public ServiceClient(string endpointConfigurationName)

3、public ServiceClient(string endpointConfigurationName, string remoteAddress)

4、public ServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress)

看一下,引用WCF后生成的配置文件中Client部分的内容,这部分包含客户端跟服务端连接使用到的Endpoint的配置:

 

<client>

    <endpoint address="http://localhost:8080/WCFService/Service"

        binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService"

        contract="WCFClient.localhost.IService" name="BasicHttpBinding_IService" />

</client>

 

实际上,客户端代理类是从某个它对应的那个Contract继承的,所以客户端代理类本身一定是跟某个Contract相关的。

如果客户端配置文件中这个代理类对应的Contract只有一个Endpoint配置,那么可以使用第一个构造方法,运行时,会根据代理类的Contract在配置文件中相应的配置。

如果客户端配置文件这个代理类对应的Contract有多个Endpoint配置,可以使用第二个构造方法,通过endpointConfigurationName参数指定使用哪一个Endpoint的配置。

 

对于本例,只有一个Contract,引用WCF服务后也只生成一个Endpoint配置,使用最简单的构造方法即可:

localhost.ServiceClient proxy = new localhost.ServiceClient();

string result = proxy.MyOperation1("myFirstWCF");

 

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号