gpt4 book ai didi

silverlight - 无法为指定的 ProgID (WIA.CommonDialog) 创建对象实例

转载 作者:行者123 更新时间:2023-12-02 03:25:23 24 4
gpt4 key购买 nike

我们正在尝试允许用户使用 Silverlight XAP 从远程服务器上以提升的信任在浏览器中运行扫描文档,并收到以下错误:

Unhandled Error in Silverlight Application Failed to create an object instance for the specified ProgID.



失败在以下行:
Dim CommonDialog = AutomationFactory.CreateObject("WIA.CommonDialog")

Application.Current.HasElevatedPermissions AutomationFactory.IsAvailable 两者都返回 True。

我可以成功创建不安全 ActiveX 控件的实例,例如 Scripting.FileSystemObject :
Dim fso = AutomationFactory.CreateObject("Scripting.FileSystemObject")

从远程服务器上的生产环境运行代码时失败。从 localhost 从 ASP.NET 开发服务器运行时,代码成功,调用 CommonDialog.ShowAcquireImage() 时显示 WIA 扫描对话框.

我该如何解决这个问题? (是否有一些关于 WIA 的特定内容阻止它以这种方式使用?)我可以采取哪些步骤来尝试调试它?

更新

当我尝试打开生成的 Silverlight 测试页面时(通过 file 协议(protocol)),我得到了同样的错误。

更新 2

进程监视器显示 AllowLaunchOfElevatedTrustAppsAllowElevatedTrustAppsInBrowser正在成功查询 key 。

更新 3

关闭保护模式后,代码可以工作。

最佳答案

MSDN reference声明要在浏览器中启用 COM 互操作,您必须

  • 设置注册表项 HKEY_LOCAL_MACHINE\Software\Microsoft\Silverlight\ (或在 x64 HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Silverlight\ 上) AllowElevatedTrustAppsInBrowser DWORD 0x0000001
  • 检查您的组策略是否已禁用 AllowInstallOfElevatedTrustAppsAllowLaunchOfElevatedTrustApps
  • 签署 .xap
  • 将证书安装到受信任的应用程序商店(参见 screenshots 说明如何)

  • 此外,您必须
  • 配置为 Out of Browser 应用程序(即使您没有运行 Out of Browser)
  • 在调用 ComAutomationFactory.CreateObject 之前你应该检查 Application.Current.HasElevatedPermissions AutomationFactory.IsAvailable
  • 请注意,来自 http://localhost 的提升权限测试和 http://127.0.0.1不是可靠的测试,因为 Silverlight 运行时对这两个 URL 有异常(exception)。而是使用 file:// .

  • 故障排除
  • 使用 ProcMon 验证 AllowElevatedTrustAppsInBrowser正在读取注册表项
  • 将调试器附加到 Silverlight(参见 screenshots)
  • MSIE 保护模式设置也会对 Silverlight 应用程序是否可以使用提升权限运行产生不利影响。尝试使用不同的保护模式设置运行。
  • 关于silverlight - 无法为指定的 ProgID (WIA.CommonDialog) 创建对象实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30642662/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com