这些天开始学习SilverLight, 入门开始,是从如何连接WCF和SilverLight开始的,相关的内容几乎相关于配置,遇到了很多问题。
1. 关于SilverLight和WCF的问题
SilverLight和WCF Service不在一个Domain里面,特别是在开发环境的时候,会遇到下面两个问题,
a. 使用Development Server的时候怎么才能放置clientAccessPolicy到root?
b. 如何配置SilverLight中引用WCF Service
对于问题a, 我没有直接面对,而是用了跳过的方法,如何跳过?我在WebApplication内引用了wcf service,再通过service.svc暴露出这个service,等于使用Development Server来host这个WCF service,对于silverlight来说就不是跨域的访问了。
对于问题b,我选择了不使用ServiceReference.Config来配置,而是在SilverLight中创建Client的时候通过使用HtmlBridge来得到承载页的信息,这样就可以灵活的配置,不论以后是不是要换server,iis也好,还是development server也好,都可以支持。
2. 关于IIS的问题
这里需要多提一句,其实Framework 3.0/3.5都是基于2.0核心开发的一系列扩展,所以对于IIS来说,在Application Pool中,你是看不到3.0/3.5的字样,但是实际上你还是需要安装Framework3.5,因为你的程序需要这些运行库。
具体细节请下载我的测试工程内有一些注释。
http://files.cnblogs.com/Eugene/TestSilverLight.zip
工程中有三个项目
1. WCF service
2. Web Application
3. SilverLight Application
需要注意的是以下几个文件
1. Page.xaml.cs [Project 3]
2. DataService.svc [Project 2]
3. ServiceReferences.ClientConfig [Project 3]
使用方法
pre:安装好Framework3.5sp1, SilverLight SDK
1. Unzip to anywhere
2. Double click [TestSilverlight.sln]
3. Press F5