尝试向 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();
注:方法一就OK了,经过测试。
SilverLight跨域访问及其常用的几种解决方法
Ubuntu环境下挂载新硬盘
软碟通 UltraISO U启替代品 Win32DiskImager 无设备 无盘符 无u盘 无优盘 解决方案 之diskpart
delphi Integer overflow
MSBuild Tools offline
delphi synedit免费的拼写检查器dll
git 自定义命令行
lua编译
gcc ar
Windows Subsystem for Linux (WSL)挂载移动硬盘U盘 卸载 c d 盘