You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过IIS使用WIA.CommonDialog调用扫描仪时出现80070005拒绝访问错误

解决IIS中调用WIA.CommonDialog时出现80070005拒绝访问错误

问题描述

在IIS环境下调用WIA.CommonDialog扫描设备时,触发System.UnauthorizedAccessException异常,错误代码80070005,具体提示为:

通过IClassFactory创建CLSID为{850D1D11-70F3-4BE5-9A11-77AA6B2BB201}的COM组件实例失败,错误信息:80070005 Access is denied(HRESULT异常:0x80070005 (E_ACCESSDENIED))

解决方案

1. 调整应用程序池身份权限

  • 打开IIS管理器,定位到目标站点对应的应用程序池,右键选择高级设置
  • 将标识修改为具备本地系统权限的账户(如LocalSystem,注意此账户权限较高,需评估安全风险),或拥有本地管理员权限的域/本地账户
  • 重启应用程序池及站点

2. 为COM组件分配IIS账户权限

  • 按下Win+R,输入dcomcnfg打开组件服务
  • 依次展开组件服务 > 计算机 > 我的电脑 > DCOM配置
  • 若找不到WIA.CommonDialog,可右键DCOM配置选择查看 > 详细信息,通过CLSID列定位{850D1D11-70F3-4BE5-9A11-77AA6B2BB201}对应的组件
  • 右键该组件选择属性,切换到安全选项卡
    • 在启动和激活权限区域,选择自定义并点击编辑,添加IIS应用程序池账户(格式:IIS AppPool\你的应用池名称),授予本地启动和本地激活权限
    • 在访问权限区域,同样添加该账户并授予本地访问权限
  • 保存所有设置

3. 验证扫描仪设备权限

  • 打开设备管理器,找到目标扫描仪设备,右键选择属性
  • 切换到安全选项卡,确认IIS运行账户拥有该设备的读取和控制权限
  • 若账户未在列表中,点击添加输入账户名,分配对应权限

4. 配置IIS站点身份验证

  • 在IIS管理器中,打开目标站点的身份验证功能
  • 启用Windows身份验证,确保用户通过Windows身份访问,避免匿名账户权限不足
  • 若使用匿名身份验证,需保证IUSR账户拥有访问COM组件及扫描仪设备的足够权限

内容的提问来源于stack exchange,提问作者Ayat Anwer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 19:15:50