Silverlight跨域访问WebService解决方法
2012-03-13 11:56
489 查看
这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头……
在用Silverlight调用WebService时,发生以下错误:
这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。
原因:
Silverlight通过WebService访问了别的服务端数据。s
解决方法,建立跨域策略文件:
在该Silverlight网站根目录建立2个XML文件:
以下是代码片段:
ClientAccessPolicy.xml
crossdomain.xml
WCF跨域 这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP
尝试向 URI“http://localhost:8001/AccountService.svc”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。有关详细信息,请参阅内部异常。
解决方法:
一、在WCF项目根目录下添加clientaccesspolicy.xml文件
二、在silverlight项目中添加一个中介类ServerManager.cs
三、实例化实体类的时候一般是这样:ServiceWcfClient clientWcf = new ServiceWcfClient();
换成:ServiceWcfClient clientWcf = ServerManager.GetPox();
在用Silverlight调用WebService时,发生以下错误:
这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。
原因:
Silverlight通过WebService访问了别的服务端数据。s
解决方法,建立跨域策略文件:
在该Silverlight网站根目录建立2个XML文件:
以下是代码片段:
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>
crossdomain.xml
<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <allow-access-from domain="*" /> <allow-http-request-headers-from domain="*" headers="*" /> </cross-domain-policy>
WCF跨域 这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP
尝试向 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();
相关文章推荐
- ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法
- Silverlight跨域访问WebService解决方法
- ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法
- ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法
- Silverlight跨域访问WebService解决方法
- SilverLight跨域访问及其常用的几种解决方法
- SilverLight跨域访问及其常用的几种解决方法
- 【转摘】SilverLight跨域访问及其常用的几种解决方法
- SilverLight跨域访问及其常用的几种解决方法
- SilverLight跨域访问及其常用的几种解决方法
- SilverLight跨域访问及其常用的几种解决方法
- SilverLight跨域访问及其常用的几种解决方法
- Jquery ajax 调用WebService 跨域访问的解决方法
- SilverLight跨域访问及其常用的几种解决方法
- silverlight调用webservice跨域导致问题的解决方法
- SilverLight跨域访问及其常用的几种解决方法
- SilverLight跨域访问及其常用的几种解决方法
- WebService 通过POST方式访问时候,因 URL 意外地以“/方法名”结束,请求格式无法识别 解决办法
- [Unity WWW] 跨域访问解决方法
- 服务器端可控情形的Javascript跨域访问解决方法