WCF 入门(23,24)
前言
重新找了工作,过去的事情就过去好了。有些不一样的经历也不是说一定就是坏事。
第24集 在控制台应用程序中自托管WCF服务 Self hosting a wcf service in console application
第23集比较简短,总共2分钟不到的样子,介绍了WCF托管的几种方式,其实就是如何把这个服务架起来,可以让外部调用。总共有4中。
方式 | 描述 |
self-hosting(自托管) | 用控制台或者winform的应用程序来托管 |
windows 服务 | 用windows 服务的方式 |
IIS | 可以用IIS服务来托管服务,只支持http 协议的Binding |
Windows Activation Service(WAS) | 用带WAS的IIS 7 来托管服务,支持所有的Binding |
24集先讲一下第一种,self-hosting
所谓的self-hosting就是把服务交给 .net的托管代码程序(比如console application,winform application,WPF application)来host的方式。有点拗口,反正只要看服务是架在哪里的就行了。
self-hosting 的方式有几个优点:
1. 容易架设。配合VS,只要编辑一下app.config就可以很容易跑起来。
2. 容易调试。没有必要去附加什么其他的进程(比如iis 的w3wp)。
3. 支持所有的传输协议。
4. 生命周期可控。通过调用Open() 和 Close()方法可以很方便的控制服务的状态。
有优点就一定有缺点:
1. 只有在service host running了之后才能调用service。
2. 不能像iis被动激活。
3. 要自己写一些代码来控制。
下面来实践一下。
其实也已经这么多集了,大致也都明白了,这集的方式稍微有点不同,用了一下vs自带的WCF config编辑器,而不是以前纯粹手写的xml代码。
1. 新建一个空的解决方案,添加一个类库,删除自动生成.cs 文件,再添加一个wcf项目,取名HelloService。
2. 自动的,该项目会添加一个接口文件,一个类文件,一个app.config文件。 config文件暂时先不管。
3. 简单的修改一下IHelloService。
[ServiceContract]public interface IHelloService{[OperationContract]string GetMessage(string name);}
然后是接口实现部分。
public class HelloService : IHelloService{public string GetMessage(string name){return "Hello " + name;}}
然后编译一下,让他生成dll,后面会用到。
4. 接下去给该解决方案添加一个console application。并且设置为启动项。
5. 添加对上面HelloService的引用。再添加一个app.config文件。
到这一步之后以前的做法就copy 第2步生成的config文件内容,paste到这里面,然后稍微手动修改一下。再删掉原来项目中的config文件。这次不一样。
6. 右击host下面的App.config,有个编辑WCF配置的选项。
7. 首先要来配置一个service所需要的ABC三个属性。
选中servcies,点击Create a New Service,然后Browse,定位到第3步生成的dll。
8. Next。我们就一个Contract,所以继续Next。
9. 选择需要的Binding。
10. 第一个比较简单,第二个看意思高级一点,什么分布式啊, 可靠性啊,双向通信什么的。反正我也不懂。。。
11. 继续Next。写地址了。
这里支持相对地址或者绝对地址。这里用一下相对地址,因为后面我们还要配一下BaseAddress。留个空吧。 继续Next,就可以Finish了。
12. 添加BaseAddress
13. 启用一下serviceMetadata让客户端能自己生成代理类。
14. 添加完之后双击这个serviceMetadata,设置HttpGetEnabled = true
15. 然后把这个behavior和我们的service 关联起来。
保存一下就可以关闭了。
然后check一下host下面的App.config 文件内容。基本上该有的都有了。
然后是写个测试的application,winform或者console都可以,没有问题。
这次讲解了一下4个host WCF service的方式的第一种 self-host,以及他的优缺点。
Thank you!
转载于:https://www.cnblogs.com/sheldon-lou/p/4983939.html
WCF 入门(23,24)相关推荐
- [WCF编程]1.WCF入门示例
一.WCF是什么? Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remotin ...
- SAP PM入门系列24 - IK07 Display Measuring Points
SAP PM入门系列24 - IK07 Display Measuring Points SAP PM的基础报表里,对于计量点(Measuring Points)这个技术对象,也提供了标准的查询报表. ...
- WCF 入门之旅(4): 怎样用客户端调用WCF服务
WCF 入门之旅(4): 怎样用客户端调用WCF服务 前面的demo已经能够跑起来,现在开始考虑用客户端来测试所写的应用了,首先用个普通的应用程序来调用所写的wcf服务吧.其实最后运行wcf服务后的页 ...
- (23/24) webpack实战技巧:如何在webpack环境中使用Json
(23/24) webpack实战技巧:如何在webpack环境中使用Json 在webpack1或者webpack2版本中,若想在webpack环境中加载Json文件,则需要加载一个json-loa ...
- WCF入门的了解准备工作
了解WCF, 及WCF入门需要掌握哪里基本概念? 1.准备工作 >1.1 . XML >1.2 . Web Service >1.3 . 远程处理 (RPC) >1.4. 消 ...
- 韩顺平循序渐进学java 第21.22.23.24讲 集合
21.1 引出问题 一个问题? 前面我们学习了数组,充分体会到数组的优越性,就是可以存储同一类型的数据,但是我们假设有这样的需求,大家看看如何解决? 请做一个公司职员薪水管理系统,要求完成如下功能: ...
- ardruino控制继电器_Arduino基础入门篇24—继电器控制
继电器是一种电子控制器件,是用较小的电流去控制较大电流的一种"自动开关",通常应用于自动控制电路中起着自动调节.安全保护.转换电路等作用. 本篇介绍继电器的使用,通过串口发送命令来 ...
- 22.23.24.25.盒须图(boxplot)、棉棒图(Stem Plot; Lollipop plot)、极坐标图、雷达图(Radar Chart)
22.盒须图(boxplot) 23.棉棒图(Stem Plot; Lollipop plot) 24.极坐标图 25.雷达图(Radar Chart) 22.盒须图(boxplot) 盒须图(也称为 ...
- 2017年3月6日 星期一 --出埃及记 Exodus 23:24
2017年3月6日 星期一 --出埃及记 Exodus 23:24 Do not bow down before their gods or worship them or follow their ...
- C#-异步编程及WCF入门
异步编程 异步代码在等待I/O请求响应的同时,可通过生成更多的线程,处理更多的请求 异步代码在等待I/O请求的同时,可生成UI交互线程,并通过将耗时的工作转移到其他CPU内核的方式,让UI的响应速度更 ...
最新文章
- 2022-2028年中国丝印硅胶行业市场深度分析及投资前景趋势报告
- Hyperledger Grid:一个用于分布式供应链解决方案的框架
- NAR:浙大陈云/马忠华团队揭示病原真菌组蛋白H3K27甲基化识别新机制
- R语言使用edit函数在Rsudio中生成数据编辑器(在windows中生成编辑器)、在编辑器中输出需要的数据生成最终的dataframe
- 学习笔记 ACCESS 延迟注入
- 项目经理怎么在两周内熟悉一个项目的业务?
- 抽象类和接口-手机小案例
- Java开发经典面试题分享,建议收藏
- docker centos node nginx
- 递归算法详细分析- C
- 自动化运维环境搭建过程
- pivottablejs|在Jupyter 中尽情使用数据透视表!
- jsp或java中前后台传值乱码解决
- 【温故而知新-Javascript】使用canvas元素(第一部分)
- oracle+生成+sql语句,Oracle使用SQL语句生成日历的实现方法
- spark 安装与使用 educoder
- 一行代码实现微信电脑多开
- Android 加壳App Demo
- kettle用命令行执行ktr和kjb
- MOSFET管应用总结