WCF使用纯代码的方式进行服务寄宿
2018-03-07 10:58
344 查看
服务寄宿的目的是为了开启一个进程,为WCF服务提供一个运行的环境。通过为服务添加一个或者多个终结点,使之暴露给潜在的服务消费,服务消费者通过匹配的终结点对该服务进行调用,除去上面的两种寄宿方式,还可以以纯代码的方式实现服务的寄宿工作。
新建立一个控制台应用程序,添加System.ServiceModel库文件的引用。
添加WCF服务接口:ISchool使用ServiceContract进行接口约束,OperationContract进行行为约束
添加School类,实现Ishool接口:
通过代码将ISchool接口寄宿到控制台应用程序之中。
![](https://images2018.cnblogs.com/blog/837042/201803/837042-20180307105326758-1594890099.jpg)
以管理员身份运行程序>在浏览器输入http://10.0.0.217:20004/School/wcfapi>我们会得到以WSDL(网络服务描述语言-Web Services Description Language)形式体现的服务元数据
![](https://images2018.cnblogs.com/blog/837042/201803/837042-20180307105359319-986796506.jpg)
在解决方案中新建控制台客户端,添加服务引用,输入http://10.0.0.217:20004/School/wcfapi
![](https://images2018.cnblogs.com/blog/837042/201803/837042-20180307105433043-1015702676.jpg)
找到了我们的Ischool服务接口,添加引用后进行服务的调用。
新建立一个控制台应用程序,添加System.ServiceModel库文件的引用。
添加WCF服务接口:ISchool使用ServiceContract进行接口约束,OperationContract进行行为约束
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Activation; namespace WcfTest.Demo3 { [ServiceContract] public interface ISchool { [OperationContract] string ShowName(string Name); } }
添加School类,实现Ishool接口:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WcfTest.Demo3 { public class School:ISchool { public string ShowName(string name) { return "Show Name " + name; } } }
通过代码将ISchool接口寄宿到控制台应用程序之中。
class Program { static void Main(string[] args) { CoreCodeOpen(); } /// <summary> /// 通过代码的方式完成服务的寄宿工作 /// </summary> static void CoreCodeOpen() { try { using (ServiceHost host = new ServiceHost(typeof(School))) { host.AddServiceEndpoint(typeof(ISchool), new WSHttpBinding(), "http://10.0.0.217:20004/School"); if (host.Description.Behaviors.Find<ServiceMetadataBehavior>() == null) { ServiceMetadataBehavior behavior = new ServiceMetadataBehavior(); behavior.HttpGetEnabled = true; behavior.HttpGetUrl = new Uri("http://10.0.0.217:20004/School/wcfapi"); host.Description.Behaviors.Add(behavior); } host.Open(); Console.WriteLine("寄宿到控制台应用程序,通过代码开启WCF服务"); Console.ReadKey(); } } catch (Exception ex) { Console.WriteLine("CoreCodeOpen Error:" + ex.Message); } } }
![](https://images2018.cnblogs.com/blog/837042/201803/837042-20180307105326758-1594890099.jpg)
以管理员身份运行程序>在浏览器输入http://10.0.0.217:20004/School/wcfapi>我们会得到以WSDL(网络服务描述语言-Web Services Description Language)形式体现的服务元数据
![](https://images2018.cnblogs.com/blog/837042/201803/837042-20180307105359319-986796506.jpg)
在解决方案中新建控制台客户端,添加服务引用,输入http://10.0.0.217:20004/School/wcfapi
![](https://images2018.cnblogs.com/blog/837042/201803/837042-20180307105433043-1015702676.jpg)
找到了我们的Ischool服务接口,添加引用后进行服务的调用。
相关文章推荐
- WCF服务使用(IIS+Http)和(Winform宿主+Tcp)两种方式进行发布
- Silverlight与WCF之间的通信(4)silverlight以net.tcp方式调用console上寄宿的wcf服务
- CXF之使用工厂方法(java代码)发布服务与进行客户端调用
- WCF揭秘——使用AJAX+WCF服务进行页面开发
- 完全使用接口方式调用WCF 服务
- 将使用netTcp绑定的WCF服务寄宿到IIS7上全记录
- [原创]WCF技术剖析之三:如何进行基于非HTTP的IIS服务寄宿
- git使用补丁方式进行软件代码提交
- WCF 第一章 基础 使用代码生成WCF服务
- [转载]WCF技术剖析之三:如何进行基于非HTTP的IIS服务寄宿
- 使用WCF进行跨平台开发之三(JAVA调用WCF服务)
- WCF步步为营(二):使用配置文件改变发布服务的方式
- 使用微软企业库5.0进行WCF服务边界上的异常保护
- WCF 第一章 基础 使用代码生成WCF服务
- 将使用netTcp绑定的WCF服务寄宿到IIS7上全记录
- [转]将使用netTcp绑定的WCF服务寄宿到IIS7上全记录
- [原创]WCF技术剖析之三:如何进行基于非HTTP的IIS服务寄宿
- 使用netTcp绑定的WCF服务寄宿到IIS7
- 第一章 基础 (续 使用代码生成WCF服务)
- WCF步步为营(三):使用配置文件改变使用服务的方式