2009-12-02 4 views
1

J'essaie de charger des données dans mon application Silverlight. Cependant, quand il lance, je reçois un TargetInvocationException dès que je frappe e.Result:Chargement des données d'un site dans 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(); 
} 

Pourquoi cela échoue, et que dois-je faire pour le faire fonctionner? PS, je crains de ne pas pouvoir créer un proxy local, car l'application va être déployée dans le cadre d'une application sur un serveur Apache Tomcat, pas un IIS.

Vive

Nik

Répondre

2

Silverlight ne peut pas faire des demandes inter-domaines sans un fichier de stratégie inter-domaine sur le domaine cible. Si vous ne pouvez pas configurer de proxy, vous ne pourrez pas obtenir de données provenant d'un domaine autre que celui hébergeant votre application.

+0

J'ai un contrôle total sur le domaine et le serveur où le service Web est hébergé, donc ce n'est pas un problème. Des pointeurs sur la façon dont je peux héberger une politique inter-domaines sur un serveur Tomcat? Tout ce que je dis être particulièrement au courant avec une application Silverlight et une politique inter-domaine sur un serveur Tomcat? – niklassaers

+0

Le fichier de stratégie est crossdomain.xml. Je pense qu'il doit être disponible à la racine, rien d'autre de spécial à ce sujet. IIS, Tomcat, Apache, plate-forme d'hébergement ne devrait pas importer. –

Questions connexes