我通过添加新项目 - > WCF服务库创建了一个WCF项目,当我在开发环境中运行它时,它打开了WCF测试客户端。如何在没有安装Visual Studio的服务器上安装此服务(我不想在IIS上托管它)。我应该写一个新的Windows服务?我可以在Windows服务中托管WCF服务吗?
2
A
回答
5
创建一个Windows服务项目。
将您的WCF服务添加到此项目。
在主Windows服务类(默认为Service1.cs),添加一个成员:
internal static ServiceHost myServiceHost = null;
修改的OnStart()开始新的ServiceHost与WCF服务类型:
protected override void OnStart(string[] args)
{
if (myServiceHost != null)
{
myServiceHost.Close();
}
myServiceHost = new ServiceHost(typeof(MyService));
myServiceHost.Open();
}
修改调用OnStop():
protected override void OnStop()
{
if (myServiceHost != null)
{
myServiceHost.Close();
myServiceHost = null;
}
}
添加安装和部署项目(安装项目)到您的解决方案。将该项目的输出设置为Windows Service项目的主输出。在生成安装和部署项目时,应该会看到一个可用于安装该服务的Setup.exe文件。
请记住,您仍然需要设置您的端点和绑定。看看使用nettcpbinding进行此设置。
如果您在安装后启动Windows服务时遇到问题,请参考:Error 5 : Access Denied when starting windows service。
0
您需要创建一个Windows服务项目,然后将引用添加到您的WCF服务并承载它。为了安装该服务,您不需要visual studio,则需要使用installutil.exe
。
看一看here。
0
查看TopShelf库。我用它来创建一些WCF服务。
提示:如果您打算编写更多的WCF服务,可能值得您一边阅读端口共享。
相关问题
- 1. 托管WCF的Windows服务 - 我可以在WCF服务中停止Windows服务吗?
- 2. IIS WCF服务托管与Windows服务
- 3. 作为Windows服务托管WCF服务
- 4. Windows服务托管的TCP WCF服务
- 5. Windows服务与托管的WCF服务
- 6. WCF和托管Windows服务
- 7. 多个客户端可以访问Windows服务中托管的WCF服务吗?
- 8. 我可以在COM +中托管WCF服务吗?
- 9. 托管在Windows服务托管的WCF服务
- 10. 我如何在Windows服务中托管WCF服务?
- 11. 在Windows 2008的Windows服务中托管WCF(mex endpoint)服务
- 12. Odata服务可以作为Windows服务托管吗?
- 13. 我可以在Windows服务中托管(自我托管)WCF服务并通过http公开它?
- 14. ASP.net服务器连接与WCF服务托管在Windows服务
- 15. Windows托管的WCF服务可以使用HTTPS吗?
- 16. Windows托管服务可以成为wcf客户端吗?
- 17. Windows服务“自我托管”WCF:压缩?
- 18. WCF托管在Windows服务+网页中?
- 19. 自我托管wcf服务
- 20. 托管WCF服务
- 21. WCF服务托管
- 22. IIS可以托管WCF服务执行后台任务吗?
- 23. 在windows服务中托管的WCF服务的异步调用
- 24. 托管在Windows服务上的WCF服务中的log4net
- 25. 在Windows服务中托管的WCF服务(basicHttpBinding)的WSDL URL
- 26. 部署基于TCP的WCF服务,托管在Windows服务中
- 27. 在Windows服务中托管多个Wcf服务
- 28. 在Windows服务中托管WCF服务的框架
- 29. 在Windows服务中托管WCF服务。无法达到
- 30. 如何在1个Windows服务中托管2个WCF服务?
任何原因'myServiceHost'是内部的而不是私人的? – ProfK 2015-01-24 09:50:33
@ProfK号。再说一遍,我很久以前就写过这个答案,所以当时在给定完整背景下可能有一个理由。 – 2015-04-23 19:38:43