联系电话

010 - 62328579

传真

010 - 62315119

电子邮箱

wanglianpeng@aic-tech.com

Silverlight跨域问题解决方案

作者:admin     发布时间:2016-02-01    

Silverlight跨域问题发生在一个网站中包含另一个网站。对于我们所调试的Silverlight应用就是silverlight站点和WCFDataService站点不同而导致的。

1

如图1所示,DataServiceSilverlight站点同属AicTech.PPA.WebServer项目,因此不存在跨域的问题。而当这两项分开时,如图2所示。

2

此时Silverlight的启动站点和DataService不在同一个项目中,就会存在跨域的问题。解决跨域的问题有两个,避免发生跨域以及在服务端进行配置以允许跨域。

首先介绍避免跨域的方法:

Silverlight启动过程中会先打开Silverlight的启动站点,随后根据代码找到DataService的站点。这就要求这两个站点必须是在IIS的同一个网站下。下图中图3DataService的站点配置。图4Silverlight的启动站点的配置。

3

4

最后在IIS中查看,如图5.

5

这里不能使用IISExpress,这是因为IISExpress会自动生成端口,不同端口对应网页不同,使得跨域问题依然存在。只要保证在Silverlight中使用同一个网页,就不会存在跨域问题了。

         在服务端进行配置以允许跨域:

         DataService的项目中加入如下两个文件,就可以使客户端进行跨域访问。