当前位置:首页 > WCF入门3 - 图文
7 {
8 class Program 9 {
10 static void Main(string[] args) 11 {
12 //创建宿主的基地址
13 Uri baseAddress = new Uri(\); 14 //创建宿主
15 using (ServiceHost host = new ServiceHost(typeof(User), baseAddress)) 16 {
17 //向宿主中添加终结点
18 host.AddServiceEndpoint(typeof(IUser), new
WSHttpBinding(), \);
19 //将HttpGetEnabled属性设置为true 20 ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
21 smb.HttpGetEnabled = true; 22 //将行为添加到Behaviors中
23 host.Description.Behaviors.Add(smb); 24 //打开宿主 25 host.Open();
26 Console.WriteLine(\中的HTTP监听已启动....\); 27 Console.ReadLine(); 28 host.Close(); 29 } 30 } 31 } 32 }
(5)运行宿主程序[在客户端调用时要先运行宿主程序],如下图所示:
说明宿主建立成功。在上例中用到\类,这里只是简单的应用,具体请查看\。 建立客户端
(1)重新建立解决方案-->Web应用程序项目。
(2)添加对服务的引用(在引用上右键-->输入我们定义的服务宿主的基地址(此处为:http://localhost:8080/User)-->前往-->确定),具体请看第一节。
(3)测试程序如下图所示说明成功(注意:一定要先运行我们的宿主程序才行,如果宿主没有打开的话会报错:由于目标计算机积极拒绝,无法连接。)。
在这个示例中我们把Endpoint中的ABC,基地址,Behaviors等都直接写在了代码里,但实际应用过程中都是去依赖配置文件,为了对比说明我们下面的例子中会使用配置文件。
四、Windows应用程序宿主 建立宿主
(1)在解决方案下新建Windows窗体应用程序项目 WCFHost_Form。 (2)添加 System.ServiceModel.dll 的引用。 (3)添加 WCF 服务类库(WCFLibrary)的项目引用。 (4)添加应用程序配置文件App.config。
(5)创建宿主程序MainForm窗体,并修改App.config,代码如下:
1 2
3
5
7
8
11 contract=\>
15
17
18
20 21
22 23 24 25
26 using System;
27 using WCFLibrary;
28 using System.ServiceModel; 29 using System.Windows.Forms; 30 using System.Configuration; 31
32 namespace WCFHost_Form 33 {
34 public partial class MainForm : Form 35 {
36 ServiceHost host; 37
38 public MainForm() 39 {
40 InitializeComponent(); 41 } 42
43 //应用程序加载
44 private void MainForm_Load(object sender, EventArgs e) 45 {
46 host = new ServiceHost(typeof(User)); 47 //打开宿主
48 host.Open();
49 this.lblState.Text = \中的HTTP监听已启动....\; 50 } 51
52 //应用程序关闭
53 private void MainForm_FormClosed(object sender, FormClosedEventArgs e) 54 {
55 host.Close(); 56 } 57 } 58 }
运行程序如下图所示:
建立客户端
同上边的Console程序一样,这里要引用的地址为: 在这个例子中与Console应用程序不同的是,我们在Console配置是直接写在程序中的,而在本例中我们应用的是配置文件,区别在于如果写在配置文件中程序运行时直接到配置文件里取出相关的配置节去创建ServiceHost类。 五、WAS宿主 Windows 进程激活服务 (WAS) 概述 IIS7允许通过HTTP外的协议进行激活和网络通信。此环境适合开发可通过WCF支持的任何网络协议(包括http、net.tcp、net.pipe、net.msmq)进行通信的WCF服务。部署简单、管理方便,这些网络协议在部署时可像Http一样,直接丢到IIS7上即可,我们在下面的例子中以net.tcp为协议为例。IIS7以下的版本只能支持Http的通信。 1、确保已安装IIS7的激活组件 在应用WAS宿主时,必须确保IIS7的激活组件安装好。打开“控制面板”-->“打开或关闭Windows功能”-->“功能”,我的机器上已经安装过,如下图所示(WCF激活与非WCF激活):
共分享92篇相关文档