有一个winform应用程序,并希望在其中托管一个WCF服务。我需要将其托管在单独的应用程序域中吗?任何建议?托管WCF服务的任何建议?
4
A
回答
4
您不需要将其托管在单独的域中,但您必须决定是否希望服务请求由UI线程或其他线程处理。这取决于您创建ServiceHost
实例的方式或应用于您的服务类的ServiceBehavior
。
当服务在UI线程中托管时,它可以直接与UI交互,但请求处理是消息循环的一部分,所有服务请求都由单个线程(按顺序)处理。处理请求时,不能处理其他窗口事件(包括UI事件)=应用程序冻结。
当服务驻留在不同的线程中时,它的行为与其他宿主环境中的行为相同,但不能直接与UI交互 - 您必须使用委托调用。
方法来执行服务于自己的线程中运行:
- 创建和打开
ServiceHost
实例调用Application.Run
(的Windows消息循环的开始) - 以前创建并在单独的线程
- 开放
ServiceHost
实例在您的服务实施上使用[ServiceBehavior(UseSynchronizationContext = false)]
1
不,您不必将其托管在单独的AppDomain中。只需托管它。 WinForms在这方面没有什么特别的特殊之处。
0
你的应用做什么?服务是应用程序常规功能的一部分还是完全独立的逻辑实体?
如果您想要加载和卸载与您的服务相关的资源(例如程序集)而不关闭您的应用程序而不关闭您的应用程序将会使这更容易,但否则我不会看到很多复杂的原因的东西。
只是我的2C。 :-)
0
您可以以Win形式托管,但必须始终保持运行。
还建议您在IIS中托管,以便任何类型的客户端可用您的服务。
相关问题
- 1. WCF托管选项建议
- 2. 托管WCF服务
- 3. WCF服务托管
- 4. 托管日志服务器的建议?
- 5. 使用IIS托管WCF服务的C#中的任务管理
- 6. Windows服务托管的TCP WCF服务
- 7. Windows服务与托管的WCF服务
- 8. 托管在Windows服务托管的WCF服务
- 9. REST和托管WCF服务
- 10. WCF服务自托管
- 11. 在托管WCF服务WAS
- 12. DataContractException在托管WCF服务
- 13. WCF和托管Windows服务
- 14. 自托管WCF服务
- 15. 关于wcf服务托管
- 16. 托管WCF服务库
- 17. 自我托管wcf服务
- 18. Azure API App服务托管wcf服务
- 19. IIS WCF服务托管与Windows服务
- 20. WCF服务托管服务器
- 21. 作为Windows服务托管WCF服务
- 22. 托管Web服务/ WCF服务?
- 23. 如何在另一个WCF服务中托管WCF服务?
- 24. 将WCF作为Windows服务托管时的任何限制?
- 25. 如何在WAS中托管WCF服务?
- 26. 如何托管公共WCF服务?
- 27. WCF服务安全建议
- 28. IIS可以托管WCF服务执行后台任务吗?
- 29. 托管的Windows服务中托管的WCF服务使用WCF服务应用程序连接
- 30. 托管服务器上的WCF异常
我很想知道您为什么在您的服务中托管您的服务一个Windows窗体应用程序。如果不是主持一场比赛会更好。 Windows服务b。 IIS(如果这是一个选项),而不是? – InSane 2011-01-20 03:30:07