本人在学习蒋金楠的《WCF全面解析》,里面也没明确说明
因为本公司的系统每分钟都需要执行检查数据库,所以这个程序载体为windows服务
但未来WCF服务(为android客户端提供数据以及逻辑业务的交互)应该是寄宿在哪好呢?请各位大大帮我简单解答并阐述下理由,谢谢。
对于需要长时间运行的程序,比如实现中包含通过主动轮殉的方式访问外部数据库,那么应该选择 Windows Service 宿主,不建议使用这种方式对公网提供服务。
IIS 适合按需响应的服务部署。针对客户端的请求,可以通过 IIS 访问 Windows Service 服务实现。
当然,不太清楚你的具体的业务需求是什么,或许你应该先通过 DDD 的方式将你的各个独立子系统划分出来,通过 CQRS 模式来实现更明确的系统界限。可能最后,你会得到这样两个系统,部署在 Windows Service 中负责更新数据的服务,部署在 IIS 中负责查询和转发命令请求的服务。
thank you ,让我感觉到了一种新的思路,同时也感谢其他人的回答,谢谢。
建议使用window service,它比较稳定,如果是寄宿在IIS中,你需要使用第三方的轮询组件,自带的timer在网站长时间不被访问时,资源会被回收!
补充:window service应该走TCP协议,而IIS走HTTP,这一点你要考虑清楚,走HTTP在数据传输上只支持SOAP,其走TCP的window service可以支持复杂类型的对象。
@张占岭: IIS需要使用第三方轮询组件?
IIS是那种资源不被访问会回收,新的访问进来会激活进程的方式吧?
另外IIS确实是应该走HTTP的。但听说现在WCF寄宿在IIS7.x能走TCP,MSMQ等协议了,这个怎么看?
不过说实话,我也觉得windows服务靠谱点。
建议使用IIS,部署方便、监控方便、可移植性好