博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
silverlight访问WebService遭遇跨域问题
阅读量:6910 次
发布时间:2019-06-27

本文共 1548 字,大约阅读时间需要 5 分钟。

hot3.png

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

解决方法:

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

 

ExpandedBlockStart.gif
<?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

 

ExpandedBlockStart.gif
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();

PS:下面是原创内容了

事实证明,仅仅添加一项clientaccesspolicy.xml是不够的,还要配置一下WCF下面的web.config文件,添加services节点,下面贴代码:

<services>

      <service behaviorConfiguration="WcfService1.Service1Behavior" name="WcfService1.Service1">

        <endpoint binding="basicHttpBinding" bindingConfiguration="" contract="WcfService1.IService1" >

          <identity>

            <dns value="localhost"/>

          </identity>

        </endpoint>

      </service>

    </services>

转载于:https://my.oschina.net/u/158611/blog/27699

你可能感兴趣的文章
动画状态切换
查看>>
linux 下的GPT分区
查看>>
线程同步
查看>>
Nginx 配置SSL证书
查看>>
每日总结复习
查看>>
iPhone 开发过程中的一些小技术的总结
查看>>
android 资料
查看>>
ThreadLocal 那点事儿
查看>>
Spark源码分析调试环境搭建
查看>>
手把手教你搭建LyncServer2013之命令行持久聊天室和聊天室BUG(十五)
查看>>
全栈工程师就是一棵歪脖子树
查看>>
计算机基础
查看>>
我的友情链接
查看>>
MySQL学习笔记(14)之事务
查看>>
基于Http原理实现Android的图片上传和表单提交
查看>>
解读大数据世界中MapReduce的前世今生
查看>>
【转】TCP为什么是个可靠的协议
查看>>
Word组件Spire.Doc6.0.52 发布| 修复转PDF文本重叠的问题
查看>>
我的友情链接
查看>>
程序员是吃青春饭的?
查看>>