2010-10-27 84 views
3

我已經得到了我HTTPS上運行的應用程序Silverlight4,部署到Azure上。一切工作除了一個小故障。我以jpg縮略圖和帶有.gld擴展名的相關zip文件的形式提供了內容。我的應用應該顯示縮略圖,並允許用戶下載關聯的.gld/zip文件。Silverlight的跨方案訪問被拒絕

的下載工作正常,但是,縮略圖不會在我的UI顯示。我從我的ImageFailed處理程序中獲取AG_E_NETWORK_ERROR。我在我的cdn域的根目錄中有一個clientaccesspolicy.xml文件。 Fiddler不顯示Silverlight訪問這個文件。

這裏的clientaccesspolicy.xml:

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

我難倒爲Silverlight可以如何訪問該可下載內容,而不是圖像文件。如果我將它們部署到Azure的blob存儲(在$ root文件夾中具有相同的clientaccesspolicy.xml文件),應用程序確實會選擇縮略圖,但如果我可以繼續執行與我的cdn中已有的相同文件結構供應商。

一切顯示完美,如果Silverlight應用程序在運行的HTTP而不是HTTPS。

在此先感謝您的任何想法!

邁克爾·康納

+1

您可以添加更多關於您將URI分配給Image元素的機制的詳細信息嗎?你在使用數據綁定嗎?它是一個相對或絕對的URI? – Murven 2010-10-27 05:49:36

+0

嗨 - 它的數據綁定到圖像類型屬性​​,使用絕對URI – 2010-10-27 20:45:02

回答

0

你缺少一個「>」第7行

+0

謝謝 - 我已經更正,但仍然沒有運氣。 – 2010-10-27 20:46:30

0

檢查小提琴手等所使用的URI,檢查圖像使用HTTPS

+0

我們無法使用https訪問圖像。這是問題。我們的內容交付網絡不支持它。 – RobinDotNet 2010-10-27 22:15:06

0

嘗試實現更多的調試輸出 - 也許是這樣的:

您可以捕獲錯誤。 BitmapImage,Image,ImageBrush,MultiScaleImage都有一個ImageFailed事件。只需設置一個事件處理程序即可。

0

或試試這個:

<allow-from http-request-headers="*"> 
1

感謝所有的建議 - 它們都試過了 - 仍然沒有運氣,可悲。不幸的是,位圖的ImageFailed事件並沒有給出太多細節。我認爲我們可能會反對圖像文件的跨計劃限制。

0

我知道這是一個非常古老的問題,但如果有人還停留在類似的情況 Silverlight不允許跨方案訪問。您必須在兩端都有http或https。從MSDN:URL Access Restrictions in Silverlight

  • 如果你想舉辦您的Silverlight應用程序,並在不同服務器上的 圖像存儲,限制如下:您 無法將圖像存儲上使用了HTTPS方案,如果你的網站 託管您的應用程序在HTTP站點(交叉計劃)。

  • 可以,只要是跨域站點的
    方案是一樣的
    網站託管應用程序的方式對跨域現場儲存圖像。

  • 運行在Windows上無法存儲 服務器上的圖像在本地Intranet區域,如果應用程序是從Internet區域(跨區域)下載
    ,除非目標域是
    本地主機的Silverlight應用程序。

  • 只要URL使用
    相同的方案,您可以重定向到另一圖像URL。