我正在做silverlight+webService连接数据库,但调试过程中出现了此异常:
尝试向 URI“http://localhost:2369/MainService.asmx”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。有关详细信息,请参阅内部异常。请各位大哥帮帮忙,我都弄了一下午了

解决方案 »

  1.   

    建议silverlight+.net Framework 3.5Sp1中的WCF restful模式
    用http post/get进行交互,效率更高
    参考www.cnblogs.com/mail-ricklee
      

  2.   

    http://topic.csdn.net/u/20090815/10/7662b54a-cd67-4721-b9a3-b4d65522fa6b.html
      

  3.   

    跨域访问http请求时,在目标网站的根下必须有策略文件供下载(两种策略文件之中任意一种)。
      

  4.   

    例如,如果silverlight程序要跨域访问 http://topic.csdn.net/mysite/myservice.asmx,那么你就需要首先部署策略文件 http://topic.csdn.net/clientaccesspolicy.xml,注意是放在根下,而不是虚拟目录下,这样silverlight才能访问web服务。如果silverlight应用访问自己的宿主页面所在域,则不需要策略文件。
      

  5.   

    跨域访问需要为服务实现IClientAccessPolicy接口...不一定要在根下部署策略文件,但要为IClientAccessPolicy.GetPolicy方法返回策略文件...
      

  6.   

    首先加入clientaccesspolicy.xml,crossdomain.xml文件或是代码中实现中两个文件的功能,调试一下看看,如果不行的话 首先测试你的webservice能不能访问的到,一点一点的排除查吧