专注ASP.NET和SQLServer2008 BI&GIS

骂别人不革命,便是革命者,则自己不做事,而骂别人的事做得不好,自然便是更做事者。
若与此辈理论,可以被牵连到白费唇舌,一事无成,也就是白活一世,于己于人,都无益处。
我现在得了妙法,是谣言不辩,诬蔑不洗,只管自己做事。——鲁迅1934年6月21日信
posts - 260, comments - 1245, trackbacks - 30, articles - 6
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理

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

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

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

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

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

 

希望对和我一样初学的朋友有帮助.

---aspnetx

 

Feedback

#1楼    回复  引用  查看    

2008-04-26 23:02 by 李永京      
http://timheuer.com/blog/archive/2008/04/09/silverlight-cannot-access-web-service.aspx
http://blogs.msdn.com/carlosfigueira/archive/2008/03/07/enabling-cross-domain-calls-for-silverlight-apps-on-self-hosted-web-services.aspx
关于这个的blog,我还没有看呢。等自己理解了,在研究下

#2楼    回复  引用  查看    

2008-05-15 18:00 by 傻样精英      
从文字上理解就是跨域操作的权限问题。因为silverlight支持跨域通信

#3楼    回复  引用  查看    

2008-05-21 12:09 by 风云(lookcode.net)      
可以把项目名去掉。
在项目的属性哪边有一个virtual path

website的同样也有这个
VWDVirtualPath = "/"

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-04-19 23:20 编辑过


相关链接: