使用消息对话框访问拒绝异常

时间:2015-01-07 20:50:01

标签: c# windows-store-apps signalr dispatcher messagedialog

我正在使用Windows 8.1应用程序,用户可以使用它来玩tic tac toe。为了使我的应用程序实时,我利用SignalR。以下是我编写的用于向用户发送游戏请求的代码。

hubProxy.On<string>("ShowRequest", async (requestOwner) =>
        {
            await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, async () =>
            {
                var messageDialog = new MessageDialog(requestOwner + " wants to play with you", "New Game Request");
                messageDialog.Commands.Add(new UICommand("Accept", new UICommandInvokedHandler(CommandHandler)));
                messageDialog.Commands.Add(new UICommand("Deny", new UICommandInvokedHandler(CommandHandler)));

                messageDialog.DefaultCommandIndex = 1;
                messageDialog.CancelCommandIndex = 2;

                await messageDialog.ShowAsync();

            });

        });

当用户向另一个用户发送请求时,在用户的屏幕上会出现一个消息对话框,请求已被发送给该用户。如果该用户点击接受按钮,则显示该应用程序的另一页面。在这个页面上,用户玩游戏,赢家再次显示一个消息对话框(可能导致错误,我不知道)。到现在为止还挺好。但是,如果他们返回上一页并发送另一个请求,则消息对话框不会显示,并且会在下面的行中抛出UnauthorizedAccessException。

await messageDialog.ShowAsync();

以下是例外情况:

消息:&#34;访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))&#34;

来源:&#34; Windows.UI&#34;

StackTrace:&#34;在Windows.UI.Popups.MessageDialog.ShowAsync()\ r \ n在XOX.AvailableUsersPage。&lt;&gt; c__DisplayClass7。&lt;&lt; .ctor&gt; b__2&gt; d__b.MoveNext()&#34;

我在stackoverflow和其他网站上查看了类似的问题,但是他们没有帮助我。

谢谢

编辑:我真的无法诊断异常的原因。我将这些代码行放在try-catch块中,并且没有ecxeption抛出!当我从页面上删除了messagedialog(宣布获胜者的那个)时,用户就开始游戏了,再次也不例外。

0 个答案:

没有答案