3

J'ai une application Silverlight qui parle à un service Web HTTPS.Silverlight ne peut pas communiquer avec le service Web HTTPS?

Sur la plupart des machines, cela fonctionne très bien, cependant, sur certaines machines, il échoue régulièrement.

Sur les ordinateurs, il échoue, je reçois une exception SecurityException lors d'une demande WebClient au service Web HTTPS. Le SecurityException lui-même ne me donne pas d'indices quant à pourquoi il est vraiment défaut:

WebClient client = ...; 
client.DownloadStringCompleted += OnCompleted; 
client.DownloadStringAsyc("https://somewebservice/foo"); 

... 

void OnCompleted(object sender, DownloadStringCompletedEventArgs e) 
{ 
    Console.WriteLine(e.Error); // Prints SecurityException. Message = "Security error" 
} 

Quelles sont les raisons possibles d'une application Silverlight ne parviendra pas à appeler un service Web HTTPS? Comment puis-je déboguer cela?

Toujours aucune réponse - ya t-il des informations supplémentaires que je peux donner pour aider à résoudre ce problème?

Répondre

3

Nous l'avons compris. Le problème est venu aux appels inter-zone:

Notre application Silverlight a été hébergée sur foo.bar.com, qui se trouve dans la zone Internet normale d'IE (faible confiance).

Notre service Web était hébergé sur foo.ourcompany.com, qui se trouve dans la zone Intranet d'IE (confiance élevée).

Les applications Silverlight ne peuvent pas effectuer d'appels de demande Web depuis des zones de faible sécurité vers des zones de sécurité supérieure. Voir l'article de MSDN sur Silverlight URL Access Restrictions pour plus d'informations. Dans notre cas, aller d'Internet-> Intranet passait d'une confiance faible à une confiance élevée, et l'appel SL a donc échoué avec une exception SecurityException. Avis: Microsoft doit fournir des informations sur la raison pour laquelle une exception SecurityException s'est produite lors des appels de demande Web. Cela nous aurait économisé beaucoup de temps et d'argent.

+0

Avez-vous réussi à résoudre cela à la fin? –

+0

Oui, avez-vous lu la réponse? Le problème était que l'application fonctionnait à partir de ce que IE considérait comme une faible confiance (Internet) et parlait à un service hébergé dans ce que IE considère comme une confiance élevée (intranet d'entreprise). La solution est d'avoir l'application et le service dans la même zone: à la fois sur Internet, ou les deux sur l'intranet. –

Questions connexes