启用Silverlight Out-of-browser会破坏浏览器内的应用程序

本文关键字:浏览器 应用程序 Silverlight Out-of-browser 启用 | 更新日期: 2023-09-27 18:01:46

我目前正在用Silverlight开发一个小应用程序,最近为了尝试一下,我为我的应用程序启用了浏览器外部署。然而,现在在我禁用设置之后,运行应用程序现在一旦完成加载就会抛出异常。

一个未处理的异常(' unhandled Error in silverlight application . ')代码:4004类别:ManagedRuntimeError消息:System.Reflection.TargetInvocationException:操作过程中发生异常,导致结果无效。

但是,如果我只是在浏览器中打开TestPage.html,应用程序仍然像以前一样工作。

任何想法?由于

启用Silverlight Out-of-browser会破坏浏览器内的应用程序

例如,尝试在App.Xaml.cs的Application_UnhandledException方法中输入以下行(App.Xaml的代码隐藏) " MessageBox.Show (e.ExceptionObject.Message);"。这可以让您了解调试器尚未连接到浏览器时出现的问题。顺便说一句,在Visual Studio中,您可以在调试菜单->附加到进程…中手动将调试器附加到浏览器上。,然后选择进程,例如输入"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); });
        }
    }

我找到问题了。我不确定为什么激活浏览器外,然后返回需要这个,但添加一个clientaccessppolicy .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>

修复问题