2009-06-10 2 views
1

У меня есть два Silverlight-приложений с помощью следующей строки кода:Silverlight HtmlPage.PopupWindow прерывистый

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

Первое приложение (простой тест приложение) ВСЕГДА всплывает новое окно браузера правильно.

Второе приложение (мое фактическое, более сложное приложение) правильно отображает окно браузера в первый раз, когда я запускаю приложение после перезагрузки, но если я закрою приложение и запустил его снова, ничего не произойдет, когда строка выше казнены. Если я перезагружу (Vista), он снова работает правильно в первый раз.

Оба приложения установлены в одной папке приложения IIS, используют тот же web.config и имеют одинаковые хосты .aspx (за исключением имени имени файла aspx и имени приложения silverlight).

Это второе приложение делает различные обращения к веб-сервису обратно в один и тот же домен (и такую ​​же папку приложений), но в противном случае не взаимодействует с чем-либо другим, кроме UI (то есть без изолятора изолированного содержимогоStorageFile), но он восстанавливает если это имеет значение).

Я установил AllowHtmlPopupWindow с:

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

Я не знаю, как следующее связано, но интересно то, что первый (тест) приложение работает правильно ли AllowHtmlPopupWindow установлен, как указано выше, или нет , И, даже если он установлен, как указано выше,

HtmlPage.IsPopupWindowAllowed 

всегда ложно (в то время как во втором приложении, IsPopupWindowAllowed верно, когда он работает правильно и ложно, когда он терпит неудачу).

У кого-нибудь есть идеи?

ответ

0

Похоже, что проблема заключается в вызовах веб-службы. Я обнаружил, что, если я закрою веб-службы явно с помощью прокси-вызова:

proxy.CloseAsync(); 

затем последующий вызов HtmlPage.PopupWindow работает отлично. Значение IsPopupWindowAllowed также было согласованным в этом случае. (По-прежнему не знаю, почему PopupWindow работал правильно в тестовом приложении, когда IsPopupWindowAllowed был ложным.)

0

AllowHtmlPopupWindow по умолчанию используется для приложений без междоменного домена (http://msdn.microsoft.com/en-us/library/cc974117%28VS.95%29.aspx). Вы увеличиваете приложение для вызовов веб-сервисов, поэтому это междоменное, а AllowHtmlPopupWindow по умолчанию - false. Это только объясняет ваше последнее замечание, хотя ...