【发布时间】:2010-11-06 15:04:36
【问题描述】:
当我尝试在 Silverlight 中打印某些内容时,我得到了臭名昭著的“对话框必须由用户启动”安全异常。如您所见,该对话框尽可能由用户启动:
John Papa couldn't help me much out neither,因为我没有设置任何断点。 Mr MSDN thinks it could also be that I'm just taking too long,但这是一个尽可能简单的演示应用程序。
有什么想法吗?我想这是 Visual Studio 的一个怪癖,可能是一些扩展干扰,因为当我在它之外启动应用程序时,事情似乎工作正常。我首先想到的可能是代码合同干扰了他们的 IL 编织,但他们在这个项目中被停用了。
更新:这只是一个从文件系统本地运行的简单 Silverlight 应用程序。当我执行“开始调试”时,Visual Studio 会在 Debug resp 中创建一个包含 Silverlight 应用程序的托管 HTML 文件。项目的发布文件夹,使用该 HTML 文件启动 Internet Explorer 并将调试器附加到它。
更新 2:当我创建一个 Web 项目来托管 Silverlight 应用程序并在 IIS 上为其创建一个虚拟目录时,我也遇到了同样的错误。
我可能还想补充一点,无论托管方案如何,我在其他 Silverlight 项目中的打印都没有问题。
更新 3:我下载了 FireFox 并且它可以工作,但我在使用它进行调试时没有收到错误消息。所以它似乎与我的IE8有关。我上传了解决方案:
http://dl.dropbox.com/u/10401470/Code/Demos/PrintingDemo.zip
不知道有没有人可以复制?
有人知道我应该向哪个团队提交错误报告吗?银光队? IE团队? VS Debugger 团队?
【问题讨论】:
-
是宿主机引发的异常。 BrowserService.GetBrowserHandle() 方法返回 Windows 错误,拒绝访问。虽然当然要排除故障。而且很难回答,因为您根本没有描述您的托管方案。
-
@Hans Passant - 我用有关“托管方案”的更多信息更新了问题。
-
你没有提到当你让它创建一个 ASP.NET 网站时发生了什么。
-
@Hans Passant - 我遇到同样的错误,请参阅更新。
-
我不知道,我无法重现异常。我用Win7、Firefox、VS2010、SilverLight4、UAC关闭。
标签: visual-studio silverlight internet-explorer printing debugging