crossdomain.xml和clientaccesspolicy.xml

本文详细介绍了Silverlight2.0中遇到crossdomainerror的解决方案,包括正确放置crossdomain.xml和clientaccesspolicy.xml文件的位置,以及在初学者常见错误中的正确部署Silverlight应用至IIS的重要性。解释了为何需要这些文件,类比于ASP.NET中的文件限制,并鼓励深入理解其原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按照现在社区里大多数的silverlight 2.0教程,在做到与webservice通信的时候通常会遇到这样一个问题,就是crossdomainerror.而关于crossdomain.xml和clientaccesspolicy.xml这两个文件所提及的更是少之又少,甚至在网络上搜索都是关于flash或者flex的.我一直就被这个问题困扰着.

看到silverlight.net上的新视频教程才解决了这个问题.里面提及了一个工具webdevhelper很不错,通过它可以看到一个silverlight应用运行的时候都做了哪些请求(当然,这个工具不只是干这个的).

在网络上能找到的资料,和在社区交流的信息,都是说把这两个文件其中的一个放到webservice项目根目录就可以了.当然这样我一直没有试验成功.后来通过这个工具,发现,比如我的webservice目录叫做WSProject,引用地址是http://localhost/WSProject/webservice.asmx,那么silverlight不是在http://localhost/WSProject这个目录下找crossdomain.xml和clientaccesspolicy.xml,而是在http://localhost/下找这两个文件.所以假如你的IIS默认目录是C:\inetpub\wwwroot的话,服务文件是部署在C:\inetpub\wwwroot\WSProject下,那么crossdomain.xml和clientaccesspolicy.xml这样的文件一定要放在C:\inetpub\wwwroot而不是http://localhost/WSProject.

另外更多的时候,对于初学者做相关教程的时候,按照教程里的步骤,最后点VS2008里运行的时候,通常是把silverlight程序作为启动项目.我在做到这里的时候就遇到了本文所涉及到的问题.我发现这个时候在项目里添加crossdomain.xml或clientaccesspolicy.xml是无济于事的.VS的小型服务器会给你提供这样的测试环境,http://localhost:端口号/项目名/网页名,如前所述是注定找不到这两个文件的,所以,还是把服务文件先部署到IIS上然后再测试吧.

关于silverlight和flash为什么都需要这样的文件,我还不是很理解,不过可能也是类似于asp.net中的fileupload控件指定文件的那个属性为什么只能是只读一样,肯定是有它的道理的.慢慢去体会了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值