WCF实例 —— Windows Service Host 开发,调试,制作安装包.doc

WCF实例 —— Windows Service Host 开发,调试,制作安装包.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WCF实例 —— Windows Service Host 开发,调试,制作安装包

WCF实例 —— Windows Service Host 开发,调试,制作安装包 本篇实例介绍如何使用Windows Service来寄宿 WCF服务: 1. 添加 WCF Service Library 工程,这一步没什么好说的。 ? ? 为了简单测试,只保留下面一个服务方法: [csharp]?view plaincopy public?class?Service1?:?IService1?? {?? ????public?string?GetData(int?value)?? ????{?? ????????return?string.Format(You?entered:?{0},?value);?? ????}?? }?? 2. 添加一个 Windows Service 工程,实现 Service1 [html]?view plaincopy public?partial?class?Service1?:?ServiceBase?? {?? ????public?Service1()?? ????{?? ????????InitializeComponent();?? ????}?? ?? ????private?ServiceHost?_host;?? ?? ????protected?override?void?OnStart(string[]?args)?? ????{?? ????????_host?=?new?ServiceHost(typeof(WinSvcHostWcfLib.Service1));?? ????????_host.Open();?? ????}?? ?? ????protected?override?void?OnStop()?? ????{?? ????????if?(_host?!=?null)?? ????????{?? ????????????_host.Close();?? ????????????(_host?as?IDisposable).Dispose();?? ????????}?? ????}?? }?? 注意:ServiceHost 里的 typeof 里是 Wcf 的 Service,因为都叫 Service1 所以注意用 namespace 区分。 ? ?? ? ? 添加 WCF Service Library 工程的引用 以及 System.ServiceModel.dll ? ? 在 Service1.cs (Windows Service类) 的设计窗体上,右击点选“Add Installer”, 会在工程里添加一个 ProjectInstaller 类 ? ?? ? ? (1)修改ProjectInstaller.cs设计器中的 serviceInstaller1 属性的 ServiceName 为 “WinSvcHostWcf” ? ? (2)修改ProjectInstaller.cs设计器中的?serviceProcessInstaller1 属性的 Account 为 LocalSystem (默认为User) ? ? (3)为了能够Debug Service,在工程编译属性里加上下面的脚本,用 installutil.exe 安装服务,$(TargetPath) 是 Project 编译宏表示输出的绝对路径 ? ? 先删除: ? ??%systemroot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe /u $(TargetPath) ? ? 再添加 ? ??%systemroot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe $(TargetPath) ? ?? ? ? (4)编译 WinSvcHost 工程,就可以看到在 WinSvcHostWcf 服务在 Windows Service 服务列表中了。(用控制台命令 Services.msc 查看) ? ?? 3. 调试 Windows Service,利用 Debug - Attach to Process 就可以对托管的进程进行 Debug。 当然 OnStart 里的代码是无法调试的,因为只有正常启动后才能看到这个托管进程。 但可以用一个Thread来启动Service。加上Thread.Sleep(),延迟真实代码的调用。下面的代码用delegate.BeginInvoke来延迟调用。 还可以利用 OnStart 的输入参数 args 来控制是否要延迟,使调试更灵活。 4. 创建一个 Console 工程来测试 WCF 服务正常运行: [csharp]?

文档评论(0)

153****9595 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档