在企业级应用系统中,使用WCF+Silverlight3的难点不在开发,而部署是很让人头疼的,下面我将我的部署实践分享一下,我采用的是Silverlight3+WCF,SL的宿主采用IIS6.0,WCF宿主为windows系统服务:
首先确认你的IIS是否安装了ASP.NET2.0,使用下面的命令可以安装ASP.NET2.0的支持,在命令行下敲入:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
关于WCF与Silverlight的跨域访问在这里就不多说了,不会的可以看我的http://www.cnblogs.com/SunYu/archive/2010/07/15/1777867.html,有详细的教程,WCF以控制台作为宿主和以服务为宿主的跨域访问是一样的。
下面开始部署:
1. 制作WCF服务的安装程序
要说明的是跨域访问策略文件要手动添加进去。
安装之后启动服务。
2. 部署Silverlight到IIS:
(1)为IIS添加MIME类型.xaml application/xaml+xml和.xap application/x-silverlight-app
(2)注意Silverlight的ServiceReferences.ClientConfig中WCF服务的地址:
如果是localhost,不管你怎么部署,只能在本机访问了,局域网根本访问不了WCF,更谈不上外网。
如果Silverlight只在局域网中被访问,那么可以将localhost配置成你的局域网IP
如果Silverlight既要在局域网访问又要在外网访问,那就就将localhost替换为外网IP,然后在路由器上做映射到本机。或者使用花生壳等工具。
到此,WCF服务已经开启,就可以使用外网IP地址访问Silverlight了。