6

我有一个需要能够刻录 cd 的 XBAP。从 Visual Studio 内部运行时,一切正常。但是,当从浏览器运行时,IMAPI dll 会在尝试访问驱动器时立即报告该环境不受支持。

我假设这归结为许可。我已经安装了一个签名证书,并且 xbap 设置为作为完全信任的应用程序运行(尽管我猜它不可能或者我不会遇到这个问题)。

目前这一切都在我的本地机器上运行,但最终我希望将它部署到 Web 服务器(所有用户都已经在他们的客户端上安装了证书)。

有人对我错过/做错了什么有任何想法吗?

更新:

我尝试创建一个新的测试证书,并将其安装在我的证书存储中,然后针对它签署 XBAP,但这没有任何区别。

如果有人有任何想法,真的可以做一些想法吗?

进一步更新:

我创建了一个能够刻录 cd 的控制台应用程序。脱壳到这个控制台应用程序允许我从我的 xbap 刻录 cd,但不能从 xbap 内部刻录。

然而,这真的不是我想要的。理想情况下,我希望将所有这些都包含在 xbap 中。如果做不到这一点,有没有办法将控制台应用程序包含在 xbap 的一键部署中?

谢谢

4

2 回答 2

2

我相信这不可能用 XBAP 做。根据有关 XBAP 的 MS 文档

Internet 区域中不可用的权限示例:

  • FileIOPermission - 此权限控制在磁盘上读取和写入文件的能力。因此,Internet 区域中的应用程序无法读取用户硬盘上的文件。

  • RegistryPermission - 此权限控制读取/写入注册表的能力。因此,Internet 区域中的应用程序无法访问或控制用户注册表中的状态。

  • SecurityPermission.UnmanagedCode - 此权限控制调用本机 Win32 函数的能力。

当您通过 Internet 运行 XBAP 时,您会遇到问题 #3:尝试与非托管代码进行互操作。

我建议使用 ClickOnce 将您的应用程序部署为独立应用程序。这样,您可以完全访问系统,但仍然可以像使用 XBAP 一样轻松部署和升级。


*编辑*

您可以尝试一件事——我不能保证它会起作用——但是您可以让您的用户进入 IE Internet 选项,将您的站点添加到受信任的站点列表中。我敢打赌,您的 CD 刻录代码将会工作,因为它将位于受信任区域,而不是 Internet 区域。

于 2010-11-04T20:21:16.500 回答
0

试着去

HKLM\SOFTWARE\Microsoft.NETFramework\Windows Presentation Foundation\Hosting

在注册表中

创建一个名为 RunUnrestricted 的新 DWORD,其值为 1。

于 2010-11-22T21:05:34.373 回答