zoukankan      html  css  js  c++  java
  • WCF服务策略文件的冲突问题

    今天在做一个Demo时,突然发现一个问题,在wcf服务的根目录下放置一个策略文件后

    代码
    <?xml version="1.0" encoding="utf-8"?> 
    <access-policy> 
      
    <cross-domain-access> 
        
    <policy> 
          
    <allow-from http-request-headers="SOAPAction"> 
            
    <domain uri="*"/> 
          
    </allow-from> 
          
    <grant-to> 
            
    <resource path="/" include-subpaths="true"/> 
          
    </grant-to> 
        
    </policy> 
      
    </cross-domain-access> 
    </access-policy>

    image

    发现调用仍然会出现跨域的异常,

    image

    思前想后,找不到原因所在,后来想起来,之前在本上做tcp绑定的WCF时,我在wwwroot下放置了一个策略文件

    image

    内容是:

    代码
    <?xml version="1.0" encoding="utf-8"?> 
    <access-policy> 
       
    <cross-domain-access> 
          
    <policy> 
             
    <allow-from http-request-headers="SOAPAction"> 
                
    <domain uri="*" /> 
             
    </allow-from> 
             
    <grant-to> 
                
    <socket-resource port="4502-4534" protocol="tcp" /> 
                
    <resource path="/" include-subpaths="true"/> 
             
    </grant-to> 
          
    </policy> 
       
    </cross-domain-access> 
    </access-policy>

    而实际上这个策略文件是为了同时使用TCP和HTTP绑定的WCF放到wwwroot下的,于是我将这个文件移除掉

    image

    再调用一下服务,ok,调用成功;

    image

    注:在WCF为Silverlight提供数据服务时,我们需要在HTTP绑定类型的WCF服务根目录下放置策略文件,但是需要确保此策略文件的唯一性,如果在WWWROOT下也放置这样的文件,可能导致IIS无法正确向Silverlight递交这个策略文件。

  • 相关阅读:
    node代码打包为 exe文件---端口进程关闭demo
    java 中几种常用数据结构
    Java 多线程编程
    【java排序】 归并排序算法、堆排序算法
    【java排序】 选择排序,插入排序,希尔算法
    【java排序】冒泡排序、快速排序
    springMVC执行流程及原理
    Java反射机制详解
    【Java并发编程】:并发新特性—信号量Semaphore
    【Java并发编程】:并发新特性—障碍器CyclicBarrier
  • 原文地址:https://www.cnblogs.com/wengyuli/p/1916113.html
Copyright © 2011-2022 走看看