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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top