设为首页 收藏本站
查看: 683|回复: 0

[经验分享] Host WCF Service in IIS

[复制链接]

尚未签到

发表于 2015-8-12 13:00:58 | 显示全部楼层 |阅读模式
        WCF Service 可以托管在Windows Service ,WAS,可执行程序以及IIS中,但是以托管在IIS中为最有效的机制。因为IIS在Windows中得到了很好的集成,尤其是IIS 7.0增加了很多功能很强大的模块。然而在IIS 6.0中只支持基于HTTP的绑定,而不能够支持TCP,MSMQ等绑定协议。不过,在IIS 7.0中这些都得到了很好的支持。在这里我向大家介绍一下如下将基于HTTP绑定的WCF Service如何托管在IIS 6.0中WCF Service 可以托管在Windows Service ,WAS,可执行程序以及IIS中,但是以托管在IIS中为最有效的机制。因为IIS在Windows中得到了很好的集成,尤其是IIS 7.0增加了很多功能很强大的模块。然而在IIS 6.0中只支持基于HTTP的绑定,而不能够支持TCP,MSMQ等绑定协议。不过,在IIS 7.0中这些都得到了很好的支持。
  在这里我向大家介绍一下如下将基于HTTP绑定的WCF Service如何托管在IIS 6.0中:
    假如我们已经将一个WCF Service写好了,并将其服务实现,服务契约和数据契约分别编译到了两个DLL中了。
(1)    在IIS 6.0 中创建一个虚拟目录,并添加一个Bin目录
(2)    将服务实现,服务契约和数据契约所在的DLL添加到Bin目录中
(3)    在虚拟目录中添加一个SVC 文件,如下面的示例
<@ServiceHost Language=C# Service="SimpleWCFService.StudentServiceV30" Debug="false">link
其中Language 的取值可以是C#,VB.NET,Jscript。
(4)   在虚拟目录中添加Web.config文件,并在system.serviceModel节中配置要托管的WCF Services。
WCF Services的配置建议使用Microsoft提供的配置工具。在Visual Studio中,右键单击Web.config或App.config即可看到下面的截图:


    示例的配置文件如下:



注意上面并不配置服务的address,因为在IIS这种托管方式下Sevice对应的SVC文件在IIS中的访问地址就是该Service的地址。
    假如我的这个示例WCF服务对应的SVC文件是StudentServiceV30.svc, 虚拟目录名字为TestIISHost,占用的端口号为8888,那么我的这个WCF服务的address就是http://localhost:8888/StudentServiceV30.svc
完成以上步骤后,可以在Internet Explore 中输入WCF Service 的地址看是否正常托管了。
如果你还没有尝试过这种托管方式,不妨自己动手写一个Demo练习一下!

    另外,下面的附件中是我写的一个工具(可执行程序及使用说明),通过解析WCF Service的配置文件(App.config或Web.config等)或者服务实现(即实现ServiceContract的服务类所在的DLL)的DLL来自动产生服务对应的SVC文件。
http://files.iyunv.com/fuhongwei041/SVCFileGeneratorTool.rar
That's all. Thank you for your reading!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-97957-1-1.html 上篇帖子: Remoting服务集成到IIS的简单总结 下篇帖子: IIS 503问题排查思路
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表