2009-06-10 6 views
1

Ich habe zwei Silverlight-Anwendungen mit der folgenden Codezeile:Silverlight HtmlPage.PopupWindow ist intermittierende

HtmlPage.PopupWindow(new Uri("http://www.microsoft.com"), "test", null); 

Die erste App (ein einfacher Test app) IMMER sich öffnet ein neues Browser-Fenster korrekt. Die zweite App (meine eigentliche, komplexere App) erscheint beim ersten Start der App nach einem Neustart korrekt, aber wenn ich die App schließe und sie erneut starte, passiert nichts, wenn die obige Zeile angezeigt wird hingerichtet. Wenn ich neu starte (Vista) funktioniert es dann beim ersten Mal wieder korrekt.

Beide Apps sind im selben IIS-Anwendungsordner installiert, verwenden dieselbe web.config und haben identische ASPX-Hosts (außer dem aspx-Dateinamen und dem Silverlight-App-Namen natürlich).

Diese zweite App führt verschiedene Web-Service-Aufrufe zurück zu derselben Domäne (und demselben Anwendungsordner), interagiert aber ansonsten nicht mit etwas anderem als UI (dh kein IsolatedStorageFile-Lese-/Schreibzugriff - aber es ruft ab Cookies, wenn das einen Unterschied macht).

Ich habe gesetzt AllowHtmlPopupWindow mit:

<asp:Silverlight ID="Xaml1" runat="server" AllowHtmlPopupWindow="true" 

Ich weiß nicht, wie die folgende verwandt ist, aber interessanterweise die erste (Test) App funktioniert richtig, ob AllowHtmlPopupWindow eingestellt ist, wie oben beschrieben, oder nicht . Und selbst wenn es wie oben gesetzt,

HtmlPage.IsPopupWindowAllowed 

immer falsch ist (während in der zweiten Anwendung, IsPopupWindowAllowed wahr ist, wenn es richtig und falsch funktioniert, wenn es fehlschlägt).

Wer hat irgendwelche Ideen?

Antwort

0

Es scheint, dass das Problem in den Aufrufen des Webdienstes liegt. Ich fand, dass, wenn ich den Web-Service explizit mit dem Proxy-Aufruf schließen:

proxy.CloseAsync(); 

dann ein nachfolgender Aufruf von HtmlPage.PopupWindow funktioniert gut. Der Wert von IsPopupWindowAllowed war in diesem Fall ebenfalls konsistent. (Ich weiß immer noch nicht, warum PopupWindow in der Test-App korrekt funktionierte, als IsPopupWindowAllowed falsch war.)

0

AllowHtmlPopupWindow ist standardmäßig für nicht domänenübergreifende Anwendungen (http://msdn.microsoft.com/en-us/library/cc974117%28VS.95%29.aspx) gültig. Ihre größere App ruft Anrufe bei Webdiensten auf, daher ist sie domainübergreifend und AllowHtmlPopupWindow ist standardmäßig falsch. Dies erklärt nur Ihre letzte Bemerkung obwohl ...

Verwandte Themen