【问题标题】:Silverlight HtmlPage.PopupWindow is intermittentSilverlight HtmlPage.PopupWindow 是间歇性的
【发布时间】:2009-06-10 18:26:06
【问题描述】:

我有两个 Silverlight 应用程序,代码如下:

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

第一个应用程序(一个简单的测试应用程序)总是正确弹出一个新的浏览器窗口。

第二个应用程序(我实际的,更复杂的应用程序)在我重新启动后第一次启动应用程序时正确弹出浏览器窗口,但如果我关闭应用程序并再次启动它,执行上述行时不会发生任何事情.如果我重新启动 (Vista),它只会在第一次再次正常工作。

两个应用程序都安装在同一个 IIS 应用程序文件夹中,使用相同的 web.config,并且具有相同的 .aspx 主机(当然除了 aspx 文件名和 silverlight 应用程序名称)。

第二个应用程序将各种 Web 服务调用回同一个域(和同一个应用程序文件夹),但不与 UI 以外的任何东西交互(即,不读/写独立存储文件——但它确实检索 cookie如果这有什么不同)。

我已将 AllowHtmlPopupWindow 设置为:

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

我不知道以下是如何相关的,但有趣的是,无论是否设置了 AllowHtmlPopupWindow,第一个(测试)应用程序都可以正常工作,如上所述。 AND,即使设置如上,

HtmlPage.IsPopupWindowAllowed

始终为假(而在第二个应用程序中,IsPopupWindowAllowed 在正常工作时为真,在失败时为假)。

有人有什么想法吗?

【问题讨论】:

    标签: silverlight-2.0


    【解决方案1】:

    看来问题在于对 Web 服务的调用。我发现如果我使用代理调用明确关闭 Web 服务:

    proxy.CloseAsync();
    

    然后对 HtmlPage.PopupWindow 的后续调用工作正常。在这种情况下,IsPopupWindowAllowed 的值也是一致的。 (仍然不知道为什么当 IsPopupWindowAllowed 为 false 时,PopupWindow 在测试应用中正常工作。)

    【讨论】:

      【解决方案2】:

      对于非跨域应用 (http://msdn.microsoft.com/en-us/library/cc974117%28VS.95%29.aspx),AllowHtmlPopupWindow 默认为 true。您更大的应用程序调用 Web 服务,因此它是跨域的,AllowHtmlPopupWindow 默认为 false。不过,这仅解释了您的最后一句话...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-13
        • 1970-01-01
        • 2012-05-15
        • 2021-07-15
        • 2012-10-20
        • 2018-12-16
        • 2019-01-18
        相关资源
        最近更新 更多