2

我們對Silverlight應用程序存在一個奇怪的問題,它似乎以'clientaccesspolicy.xml'文件爲中心。Silverlight檢查'clientaccesspolicy.xml'的網站根目錄

我們有一個網站,它是IIS7上的默認網站。在這個網站的根目錄中,我們有'clientaccesspolicy.xml'文件。

我們還在'http://thewebsite/asubdirectory/service.asmx'中定義了一個web服務,用於處理網站的一些silverlight請求。

什麼似乎發生,是當我們嘗試加載silverlight組件時,有一個http請求「http://asubdirectory/clientaccesspolicy.xml」,這顯然是錯誤的。

奇怪的是,如果我將默認網站設置爲空白,並將此特定網站設置爲默認網站下的應用程序/虛擬目錄。例如http://thewebsite/subdomain/然後請求clientaccesspolicy去http://thewebsite/clientaccesspolicy.xml,並假設我保留在默認網站的根目錄的文件的副本,事情工作正常。

我想知道的是,silverlight/IIS是如何確定它需要進一步查看當網站被定義爲默認網址時,clientaccesspolicy的根目錄。

難道它是Silverlight中的服務位置或服務引用嗎?有沒有一個明智的方法呢?

非常感謝,

道格

回答

2

Silverlight的需要,要求跨域策略目標的網站,如果它是不一樣的領域。因此,根據您的「http:// asubdirectory」,我認爲您的代碼有錯誤,並且實際嘗試使用http:// asubdirectory/someservice位置而不是http:// 網站/ asubdirectory/someservice。

+0

我認爲你是對的Alexei,我希望避免進入代碼,如果路徑是由IIS或Silverlight應用程序提供的東西,但我認爲沒有選擇! – dougajmcdonald

+1

你是對的Alexei,這個令人困惑的情況是由編寫代碼塊引起的,該代碼塊旨在從URL中提取'ApplicationRoot'值並作出響應。由於沒有虛擬目錄,它只有'/'作爲ApplicationRoot,代碼塊導航URL過高,返回'http://'而不是'http:// thewebsite /' – dougajmcdonald