望穿秋水
管理&技术&业务 项目管理方面:加强通过工具辅助管理,构建Web项目管理系统来协助项目管理。技术开发方面:加强系统分析能力、架构设计能力,时刻把握新技术动态。业务方面:加强需求分析能力,使最终需求来源于客户又高于客户。

尝试向 URI“http://localhost:8001/AccountService.svc”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。有关详细信息,请参阅内部异常。

解决方法:

  一、在WCF项目根目录下添加clientaccesspolicy.xml文件

 


<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
  
<cross-domain-access>
    
<policy>
      
<allow-from http-request-headers="*">
        
<domain uri="*"/>
      
</allow-from>
      
<grant-to>
        
<resource path="/" include-subpaths="true"/>
      
</grant-to>
    
</policy>
  
</cross-domain-access>
</access-policy>

二、在silverlight项目中添加一个中介类ServerManager.cs

 


public class ServerManager
    {
        
private static ServiceWcfClient servicePicture = new ServiceWcfClient();

        
internal static ServiceWcfClient GetPox()
        {
            
if (servicePicture.State == System.ServiceModel.CommunicationState.Created)
            {
                servicePicture.Endpoint.Address 
= new System.ServiceModel.EndpointAddress("http://localhost:52207/ServiceWcf.svc");
                
return servicePicture;
            }
            
else
            {
                
return servicePicture;
            }
        }
    }

三、实例化实体类的时候一般是这样:ServiceWcfClient clientWcf = new ServiceWcfClient();

换成:ServiceWcfClient clientWcf = ServerManager.GetPox();

posted on 2011-10-26 19:11  望穿秋水  阅读(432)  评论(1编辑  收藏  举报