2010-12-22 88 views
2

我一直在致力于将一些调用COM类的控件集成到Silverlight客户端中。由于我的控件使用COM,它们只能在浏览器之外运行。客户端没有启用浏览器安装选项,当我从Visual Studio启动客户端时,我可以右键单击它并将其安装到桌面。这一切似乎工作正常。但奇怪的是,当他们不在浏览器中时,我的控件不起作用 - 我收到一个COM服务器无法启动的错误。Silverlight“Out of browser application”vs“Install from page”

陌生人部分是,如果我进入clientproperties,并将开始动作从“动态生成测试页”设置为“超出浏览器应用程序”,我的控制工作正常,并且我没有COM错误。所以我想我不明白通过右键单击菜单将应用程序安装到桌面和将应用程序设置为从浏览器应用程序启动的区别。任何想法这里发生了什么?

编辑

它看起来像这样可以专门调试有关。如果(在Visual Studio中)我选择Debug-> Start Debugging,我的COM代码就可以工作。如果我选择Debug-> Start Without Debugging,它不起作用。如果直接从XAP文件安装,它也不起作用。

+0

您是否在浏览器外设置对话框中选择了“在浏览器外运行时需要提升信任度”? – SkywayOzone 2011-01-28 20:35:46

回答

1

原来这是一个海拔问题。我试图访问的COM进程正在运行,我试图启动SL应用程序。但是,sllauncher.exe会启动升级,然后立即降低其升高的状态,并且不升级。所以我们有一个非升级的过程试图与高级进程交谈,这当然会失败。 Visual Studio被提升了,所以从那里启动应用程序使它保持提升,这就是它从那里开始工作的原因。

我解决了这个问题,确保在我的两个应用程序上匹配海拔高度 - 不启动COM进程。

相关问题