zoukankan      html  css  js  c++  java
  • 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();

    Powered By D&J (URL:http://www.cnblogs.com/Areas/)
  • 相关阅读:
    redis中插入用户集合的语句,有四个属性
    springmvc的执行流程
    面试问题总结
    程序员
    RESTFUL
    京东京麦商家开放平台的消息推送架构演进之路
    stark组件开发之自动生成URL
    stark组件前戏之项目启动前加载指定文件
    权限分配实现思路
    批量操作权限的页面展示
  • 原文地址:https://www.cnblogs.com/Areas/p/2190765.html
Copyright © 2011-2022 走看看