转载于:http://www.cnblogs.com/akiing/archive/2009/11/17/1604489.html
尝试向 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();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。