zoukankan      html  css  js  c++  java
  • Silverlight Crossdomain Access WebService And Debug

    Silverlight Crossdomain Access WebService And Debug

    主要是在你的Web Service目录下,放个clientaccesspolicy.xml
    注意是根目录。我只有放在C:\netpub\wwwroot才行,虚拟目录下不行。

    在项目中使用SilverLight调用WebService,经常出现在Debug状态下无法访问WebService的情况。

    假设WebService部署在http://localhost/SonicLocalizationService /LocalizationWebService.asmx。当以Debug运行SilverLight时,SilverLight网页运行在VS的内置 Web Server中,如:http://localhost:56287/SilverlightClientWeb/。此时即被理解为跨域访问,因为端口号不一样。

     SilverLight对于跨域的访问首先从网站根目录查询clientaccesspolicy.xml文件,如果这个文件不存在,则查询 crossdomain.xml。比如网站根目录在C:\netpub\wwwroot,则在其中放入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>

     我试验将clientaccesspolicy.xml删除,迫使silverlight使用crossdomain.xml,结果不行,不知道咋回事。

    crossdomain.xml内容如下:

    <?xml version="1.0"?>
    <!-- http://localhost/crossdomain.xml -->
    <cross-domain-policy>
        
    <allow-access-from domain="*" secure="true"/>
    </cross-domain-policy>

    这样就解决了跨域访问的问题



    作者:Angelo Lee
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    LeetCode 12. 整数转罗马数字
    [Python] for in range()使用以及列表字符串反转方法
    组合数问题
    「BJOI2020」封印
    数据结构优化建图
    小Q与找茬
    无旋Treap学习
    jzoj5679
    数星星
    凸性
  • 原文地址:https://www.cnblogs.com/yefengmeander/p/2887634.html
Copyright © 2011-2022 走看看