【问题标题】:CD Burning within an XBAP在 XBAP 中刻录 CD
【发布时间】:2011-04-07 06:20:12
【问题描述】:

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

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

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

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

更新:

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

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

进一步更新:

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

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

谢谢

【问题讨论】:

    标签: c# xbap imapi


    【解决方案1】:

    我相信 XBAP 不可能做到这一点。根据MS documentation on XBAPs

    权限示例不可用 在互联网区:

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

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

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

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

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


    *编辑*

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

    【讨论】:

      【解决方案2】:

      试着去

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

      在注册表中

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

      【讨论】:

        猜你喜欢
        • 2010-09-10
        • 1970-01-01
        • 2014-06-16
        • 2010-10-26
        • 2011-06-02
        • 2011-05-31
        • 1970-01-01
        • 2011-05-29
        • 2011-07-24
        相关资源
        最近更新 更多