學習筆記<一>ArcGIS API for SilverLight 環境配置和跨域訪問


經過這幾天的折騰終於將環境配置完成,VS2010, SDE,ArcGIS Server,准備利用silverlight API 做一個WebGIS系統,在此記錄過程的問題。

1.初次接觸silverlight,調試花費不少時間,由於安裝的是silverlight 3.0,而runtime是4.0版本的,在啟用silverlight 調試的時候會出現版本不匹配,於是乎,google之,設置相應.web項目的web屬性,禁用SilverLight 調試器即可。

2.silverlight 訪問 ArcGIS發布的REST地圖服務過程中會出現跨域調用問題。(網上摘錄)

通常,如果基於 Silverlight 的應用程序檢測到其請求是一個跨域請求,將首先在 Web 服務的應用程序根處查找 Silverlight 跨域策略文件 (clientaccesspolicy.xml)。如果這個請求導致"404 未找到"或其他錯誤,應用程序將在應用程序根處查找 Flash 跨域策略文件 (crossdomain.xml)。不允許重定向跨域策略文件。此外,跨域策略文件保持對應用程序會話有效。
    
現在知道了只要在網站中部署一個跨域策略文件,就可以解決Silverlight跨域請求問題。跨域策略文件要放在哪里?

注意:跨域策略文件必須也只能放在網站的放置在根目錄下。

我配置的是IIS服務器,將兩文件crossdomain.xml和clientaccesspolicy.xml放置在C:/inetpub/wwwroot目錄下,

 

crossdomain.xml
 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <cross-domain-policy>
 3 
 4  <!--
 5  <allow-access-from domain="*" />-->
 6  <!--<allow-access-from domain="10.48.194.53"/>
 7  <site-control permitted-cross-domain-policies="all"/>
 8  <allow-http-request-headers-from domain="*" headers="*"/>
 9  <allow-access-from domain="*"/>-->
10  <allow-access-from domain="*" secure="true" />
11  <allow-access-from domain="10.48.194.53"/>
12  <site-control permitted-cross-domain-policies="all"/>
13  <allow-http-request-headers-from domain="*" headers="*"/>
14 
15 </cross-domain-policy>

 

 

clientaccesspolicy.xml
 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <access-policy>
 3  <cross-domain-access>
 4   <policy>
 5    <allow-from http-request-headers="*">
 6     <domain uri="*"/>
 7     <domain uri="http://*"/>
 8    </allow-from>
 9    <grant-to>
10     <resource path="/" include-subpaths="true"/>
11    </grant-to>
12   </policy>
13  </cross-domain-access>
14 </access-policy>

重啟IIS服務,在silverlight 中調用REST地圖服務,

調用地圖服務
Grid x:Name="Layout" Background="White">
            <esri:Map x:Name="MyMap" >
                <esri:ArcGISDynamicMapServiceLayer ID="mylayer" 
           Url="http://localhost/ArcGIS/rest/services/mymap/MapServer"/>                
            </esri:Map>
        </Grid>

成功,完成調用。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM