首页 新闻 搜索 专区 学院

关于WCF寄宿,是选择IIS还是windows服务

0
悬赏园豆:10 [已解决问题] 解决于 2013-08-02 10:16

本人在学习蒋金楠的《WCF全面解析》,里面也没明确说明

 

因为本公司的系统每分钟都需要执行检查数据库,所以这个程序载体为windows服务

 

但未来WCF服务(为android客户端提供数据以及逻辑业务的交互)应该是寄宿在哪好呢?请各位大大帮我简单解答并阐述下理由,谢谢。

WCF
在日码农的主页 在日码农 | 菜鸟二级 | 园豆:292
提问于:2013-08-01 23:15
< >
分享
最佳答案
0

对于需要长时间运行的程序,比如实现中包含通过主动轮殉的方式访问外部数据库,那么应该选择 Windows Service 宿主,不建议使用这种方式对公网提供服务。

IIS 适合按需响应的服务部署。针对客户端的请求,可以通过 IIS 访问 Windows Service 服务实现。

当然,不太清楚你的具体的业务需求是什么,或许你应该先通过 DDD 的方式将你的各个独立子系统划分出来,通过 CQRS 模式来实现更明确的系统界限。可能最后,你会得到这样两个系统,部署在 Windows Service 中负责更新数据的服务,部署在 IIS 中负责查询和转发命令请求的服务。

收获园豆:10
Launcher | 高人七级 |园豆:45045 | 2013-08-02 09:39

thank you ,让我感觉到了一种新的思路,同时也感谢其他人的回答,谢谢。

在日码农 | 园豆:292 (菜鸟二级) | 2013-08-02 10:16
其他回答(2)
0

建议使用window service,它比较稳定,如果是寄宿在IIS中,你需要使用第三方的轮询组件,自带的timer在网站长时间不被访问时,资源会被回收!

张占岭 | 园豆:464 (菜鸟二级) | 2013-08-02 08:34

补充:window service应该走TCP协议,而IIS走HTTP,这一点你要考虑清楚,走HTTP在数据传输上只支持SOAP,其走TCP的window service可以支持复杂类型的对象。

支持(0) 反对(0) 张占岭 | 园豆:464 (菜鸟二级) | 2013-08-02 08:36

@张占岭:  IIS需要使用第三方轮询组件?

 

  IIS是那种资源不被访问会回收,新的访问进来会激活进程的方式吧?

 

  另外IIS确实是应该走HTTP的。但听说现在WCF寄宿在IIS7.x能走TCP,MSMQ等协议了,这个怎么看?

 

  不过说实话,我也觉得windows服务靠谱点。

支持(0) 反对(0) 在日码农 | 园豆:292 (菜鸟二级) | 2013-08-02 09:05
0

建议使用IIS,部署方便、监控方便、可移植性好

dudu | 园豆:37042 (高人七级) | 2013-08-02 09:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册