我目前正在Silverlight中开发一个小应用程序,最近为了尝试它,我为我的应用程序启用了浏览器外部署。但是,现在我禁用了设置后,运行应用程序现在会在加载完成后立即抛出异常。
未处理的异常(Silverlight应用程序中的未处理错误 代码:4004 类别:ManagedRuntimeError 消息:System.Reflection.TargetInvocationException:操作期间发生异常,导致结果无效。
但是,如果我只是在浏览器中打开TestPage.html,应用程序仍然可以正常工作。
有什么想法吗?谢谢
答案 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>
修复了问题。