2009-12-02 50 views
1

我試圖將數據載入到我的Silverlight應用程序中。然而,當它啓動,我立即得到一個TargetInvocationException作爲我打e.Result:從Silverlight中的站點載入數據

public MainPage() { 
    WebClient wc = new WebClient(); 
    wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted); 
    wc.OpenReadAsync(new Uri("http://www.google.com")); 
} 

void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) { 
    Stream st = e.Result; 
    StreamReader sr = new StreamReader(st); 
    String result = sr.ReadToEnd(); 
} 

爲什麼會出現這種失敗,我該怎麼辦,使其工作?

PS,恐怕我無法創建本地代理,因爲應用程序將作爲Apache Tomcat服務器上的應用程序的一部分進行部署,而不是IIS。

乾杯

回答

2

的Silverlight不能使跨域請求,而在目標域跨域策略文件。如果您無法設置代理,則無法從託管應用程序的域以外的任何域中獲取數據。

+0

我完全控制了web服務託管的域和服務器,所以這不是問題。任何指向我如何在Tomcat服務器上託管跨域策略的指針?我所推薦的任何東西都應該特別注意Silverlight應用程序和Tomcat服務器上的跨域策略? – niklassaers

+0

策略文件是crossdomain.xml。我認爲它必須在根本上提供,沒有什麼特別的。 IIS,Tomcat,Apache,託管平臺應該沒有關係。 –