在浏览器应用程序中启用Silverlight Out-of-browser中断

时间:2011-07-12 12:55:05

标签: c# silverlight out-of-browser

我目前正在Silverlight中开发一个小应用程序,最近为了尝试它,我为我的应用程序启用了浏览器外部署。但是,现在我禁用了设置后,运行应用程序现在会在加载完成后立即抛出异常。

未处理的异常(Silverlight应用程序中的未处理错误 代码:4004 类别:ManagedRuntimeError 消息:System.Reflection.TargetInvocationException:操作期间发生异常,导致结果无效。

但是,如果我只是在浏览器中打开TestPage.html,应用程序仍然可以正常工作。

有什么想法吗?谢谢

2 个答案:

答案 0 :(得分:0)

例如,尝试在App.Xaml.cs的Application_UnhandledException方法中输入以下行(App.Xaml的代码隐藏) “MessageBox.Show(e.ExceptionObject.Message);”。这可以让您了解调试器尚未连接到浏览器时出现的问题。购买方式,在Visual Studio中,您可以在调试菜单中手动将调试器附加到浏览器 - >附加到Process ...,然后选择类型为“Silverlight,x86”的进程。

    private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
    {
        MessageBox.Show(e.ExceptionObject.Message);
        // If the app is running outside of the debugger then report the exception using
        // the browser's exception mechanism. On IE this will display it a yellow alert 
        // icon in the status bar and Firefox will display a script error.
        if (!System.Diagnostics.Debugger.IsAttached)
        {

            // NOTE: This will allow the application to continue running after an exception has been thrown
            // but not handled. 
            // For production applications this error handling should be replaced with something that will 
            // report the error to the website and stop the application.
            e.Handled = true;
            Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); });
        }
    }

答案 1 :(得分:0)

我发现了问题。我不确定为什么激活浏览器外,然后返回需要这个,但将ClientAccessPolicy.xml文件添加到.web项目

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="SOAPAction">
        <domain uri="*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

修复了问题。