- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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]?
您可能关注的文档
最近下载
- 风管及桥架穿墙、穿板封堵施工方案.docx VIP
- 8.2 文化交流与文化交融(2023必威体育精装版版)高二政治课件(统编版必修4).pptx VIP
- 上海市六年级(下)数学同步讲义 第16讲 线段的相等与和、差、倍.doc VIP
- 上海市六年级(下)数学同步讲义 第17讲 角.doc VIP
- 人教精通版六年级英语上册 期末冲刺复习——句型专项突破卷【含答案】.doc
- 主题班会:勤奋学习主题班会ppt课件.pptx
- 人教精通版六年级英语上册 期末冲刺复习——词汇专项突破卷【含答案】.doc
- 《乡土中国》整本书阅读第12篇:血缘和地缘课件 统编版高中语文必修上册.pptx
- 第1~18届历届全国华罗庚金杯少年数学邀请赛真题全集 (1).pdf
- 卫生院全套规章制度汇编.pdf
文档评论(0)