Silverlight kann nicht auf HTTPS Web-Service sprechen?
-
29-09-2019 - |
Frage
Ich habe einen Silverlight-app, dass die Gespräche zu einem HTTPS-Web-Service.
Bei den meisten Maschinen es funktioniert gut, aber auf einigen Rechnern nicht konsequent.
Auf den Maschinen, die auf sie versagt, erhalte ich eine Security wenn eine WebClient-Anforderung an den HTTPS-Web-Service zu machen. Die Security selbst gibt mir keine Hinweise darauf, warum es wirklich versagt:
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"
}
Was sind die möglichen Gründe eine Silverlight-Anwendung einen HTTPS-Web-Service anrufen wird fehlschlagen? Wie kann ich mich über das Debuggen?
Bearbeiten Noch keine Antworten - gibt es eine zusätzliche Informationen, die ich zu helfen, dieses Problem zu lösen geben kann
Lösung
Wir dachten, es heraus. Das Problem kam auf Cross-Zone Anrufe:
Unsere Silverlight-Anwendung wurde auf foo.bar.com gehostet, die in IE regelmäßiger Internet-Zone (niedriges Vertrauen) ist.
Unser Web-Service wurde auf foo.ourcompany.com gehostet, die in IE Intranetzone (hohe Vertrauen) ist.
Silverlight-Anwendungen können nicht Webanforderung Anrufe von niedrigeren Sicherheitszonen zu höheren Sicherheitszonen machen. Siehe MSDN Artikel über Silverlight URL-Zugriffsbeschränkungen Mehr Informationen. In unserem Fall von internet- gehen> Intranet ging von niedrigem Vertrauen auf hohe Vertrauen, und so SL Anruf mit einem Security fehlgeschlagen.
Opinion: Microsoft sollte Aufschluss darüber geben, warum eine Security aufgetreten während der Web-Anfrage Anrufe. Das hätte uns viel Zeit und Geld gespart.