WCF服务在WAS中的托管简化指南

在.NET框架中,Windows Communication Foundation(WCF)提供了一种创建服务的最优方式。WCF服务可以以多种方式托管,包括在IIS、控制台应用程序、.NET应用程序中,或者作为Windows服务。那么,为什么要选择Windows Activation Service(WAS)来托管WCF服务呢?在本教程中,将学习WAS是什么,如何在其中托管服务,以及使用它的好处。

.NET从3.0版本开始引入了WCF技术,并提供了对多种协议的支持,如HTTP、TCP、MSMQ、IPC和基于WCF的REST等。最初,当微软推出IIS 6.0时,WCF服务在IIS中的托管仅支持HTTP协议。后来,随着Windows Vista的发布,WCF支持了TCP、MSMQ和命名管道等所有其他协议,这使得实现WCF服务变得更加方便,而无需进行大量编程。

创建一个简单的WCF服务非常简单。将使用Visual Studio 2010和IIS 7.5来完成这个教程。打开Visual Studio,创建一个新的项目,选择WCF应用程序服务。一旦应用程序打开,可以看到自动生成的WCF示例方法。可以直接使用这些方法。运行WCF应用程序或按F5,现在可以看到WCF测试客户端弹出,要求输入值。可以确保应用程序正确工作。

现在让尝试通过HTTP协议在浏览器中启动。需要相应地修改Web.config文件。找到指向创建的.svc文件的URL。太棒了,服务已经上线了,请注意:所有这些都是由IIS服务器处理的,它立即将服务应用程序托管到随机端口。默认情况下,如所讨论的,它仅支持HTTP协议。如果对创建和使用HTTP服务感兴趣,可以。

现在让尝试将应用程序映射到非HTTP协议,修改Web.Config中的绑定如下:

<system.serviceModel> <bindings> <netTcpBinding> <binding name="NetTcpBindingConfig" /> </netTcpBinding> </bindings> <services> <service name="YourNamespace.YourService"> <endpoint address="net.tcp://localhost:8080/YourService" binding="netTcpBinding" contract="YourNamespace.IYourService" /> </service> </services> </system.serviceModel>

运行WCF应用程序或按F5。正如预期的那样,IIS不理解协议,并说它“找不到基本地址……”。可以通过设置Windows Activation Service(WAS)来解决这个问题,这也是本WCF教程的主要目标。

要安装WAS,请转到控制面板->程序和功能->打开或关闭Windows功能->Microsoft .NET Framework 3.5.1->勾选Windows Communication Foundation非HTTP激活。这就是默认情况下关闭的WAS。

一旦打开非HTTP激活,转到IIS->托管的服务->高级设置->在启用的协议下添加net.tcp协议。注意:可以有多个协议,用逗号分隔。

接下来,需要将绑定值设置为net.tcp协议,要做到这一点,转到IIS->托管的服务->站点绑定->添加->类型为net.tcp,绑定信息为“:*”。

最后,尝试使用之前尝试过的相同URL在浏览器中导航。就是这样,刚刚在Windows Activation Service类型中托管了WCF服务应用程序。随意玩转它。可以通过像往常一样映射端点来使用服务。现在,让看看在WAS中托管应用程序的好处。

在WAS(Windows Activation Service)中托管有许多优点,如多协议支持、可靠性等。让简要讨论一些最重要的好处。

低开销:作为一个Windows组件,它完全独立于IIS服务器主机,并且摆脱了与托管服务器相关的开销。

支持多协议:与IIS(Internet Information Services)默认仅支持HTTP不同,因此通过切换WAS并触发所需协议来启用它。

健康监控:在WAS中托管为提供了足够的灵活性来监控每个应用程序服务的健康状况。

避免内存泄漏:WAS回收功能帮助控制内存泄漏,从而提高效率。

配置:配置可以通过如web.config或app.config这样的配置文件完全控制。例如,目录列表设置为true可以让用户访问文件夹和文件。

因此,在WAS环境中托管WCF服务有更多的好处,并提高了服务的稳定性。客户可以比其他任何托管技术更依赖于该服务。一定从这个WCF服务托管教程中学到了一些新东西。期待反馈和评论。

愉快的WCF编程!

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485