WCF_Windows宿主服务
来源:互联网 发布:mac os 常用快捷键 编辑:程序博客网 时间:2024/06/05 01:57
Windows宿主wcf服务
系统启动,服务即启动。调用很方便
windows宿主步骤:
- 编写WCF服务
- 添加windows安装项目
- 服务端配置
- 使用工具安装服务
- 服务调用
添加类库项目
项目中添加必要的引用 (参考:自宿主服务)然后添加一个wcf服务添加服务接口及接口实现
具体代码可参考上一篇,服务编写是一样的。参考:自宿主服务
添加windows 服务项目
添加成功之后
右键添加安装程序
项目中多出两个类文件
接着设置属性
属性设置完成之后,对wcf服务进行服务端的配置
配置文件中同样多一个host文件,因为windows服务也需要在服务端确定访问地址。
配置内容如下:
<system.serviceModel> <services> <service name="WCFWindowsHost.Service.UserInfoService" behaviorConfiguration="HttpGetEnable"> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="NoSecurity" contract="WCFWindowsHost.Service.IUserInfoService"></endpoint> <host> <baseAddresses> <add baseAddress="http://localhost:8082/UserInfoService"/> </baseAddresses> </host> </service> </services> <behaviors> <serviceBehaviors> <behavior name="HttpGetEnable"> <serviceMetadata httpGetEnabled="true"/> <serviceDebug includeExceptionDetailInFaults="true"/> </behavior> </serviceBehaviors> </behaviors> <bindings> <basicHttpBinding> <binding name="NoSecurity" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"> <readerQuotas maxArrayLength="2147483647" maxStringContentLength="2147483647"/> <security mode="None"></security> </binding> </basicHttpBinding> </bindings> </system.serviceModel>
接下来编写服务启动程序
在添加的安装类中编写
partial class UserInfoWindowsService : ServiceBase { private readonly ServiceHost _host; public UserInfoWindowsService() { InitializeComponent(); _host = new ServiceHost(typeof(UserInfoService)); } protected override void OnStart(string[] args) { _host.Opened += delegate { Console.WriteLine(@"wcf windows service is start at @{0}", DateTime.Now); }; _host.Closed += delegate { Console.WriteLine(@"wcf windows service is stop at @{0}", DateTime.Now); }; try { _host.Open(); } catch (Exception e) { Console.WriteLine(e); throw; } } protected override void OnStop() { try { _host.Close(); } catch (Exception e) { Console.WriteLine(e); throw; } } }
在windows服务项目中的program中调用
static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> static void Main() { var servicesToRun = new ServiceBase[] { new UserInfoWindowsService(), }; ServiceBase.Run(servicesToRun); } }
以上代码部分就完成
接下来,以管理员身份,在dos窗体,安装windows服务
使用的安装工具为:installUtil.exe 工具位置可查看实用小工具
安装:
首先路径转到windows服务项目的bin\Debug目录
然后找到nstallUtil.exe 工具的位置,右键+shift,复制为路径到dos窗体 ,然后再添加Debug目录下的exe程序
回车,执行命令:{windows服务项目地址}\bin\Debug>"{安装工具地址} {Debug下exe程序}
然后查看服务是否已成功安装
在“服务”中查看,是否有我们安装的服务WCFServiceTest
找到之后,启动服务,并在属性中设置为“自动”
启动之后,查看启动的服务的端口是否被监听
netstat -ano| findstr 8082
被监听,说明服务成功启动
wcf服务宿主windows之后的调试
可以将当前启动的windows服务附加到进程,然后在服务实现的代码上设置断点即可调试。
卸载windows服务
命令:{windows服务项目地址}\bin\Debug>"{安装工具地址} /u {Debug下exe程序}
以上就WCF宿主Windows的操作流程。
阅读全文
1 0
- WCF_Windows宿主服务
- WCF服务自宿主
- WCF_自宿主服务
- WCF_IIS宿主服务
- WCF宿主与服务托管
- WCF宿主与服务托管
- WCF宿主与服务托管
- WCF宿主与服务托管
- WCF宿主与服务托管
- WCF开发之宿主(Hosting) IIS/WAS宿主 Windows服务宿主 Windows应用程序
- 宿主程序为windows服务的remoting
- WCF服务怎样与宿主程序交互
- 使用WindowsService为宿主实装WCF 服务
- 用IIS做宿主的WCF服务
- (4)WCF宿主与服务托管
- WCF服务宿主及其跨域问题
- WCF服务怎样与宿主程序交互
- WCF服务怎样与宿主程序交互
- linux php7 安装redis扩展(php7可以使用自测)
- hdu3920(壮压DP)
- maven
- 安卓WebView与JavaScript交互
- maven
- WCF_Windows宿主服务
- maven
- ubuntu安装VMWare Tools并共享文件夹
- csopes插件笔记
- 日期调用API,查询是否是节假日
- 【internship life】周报1
- CodeVS 1155 金明的预算方案 题解
- Java数据结构及原理实现
- Android_PopupWindow