C#读写Word文档异常处理解析System.Runtime.InteropServices.COMException

15 篇文章 0 订阅

C#读取Word文档时会有什么异常呢?那么这里向你介绍了Asp.net中建立MS office组件时出现“拒绝访问”和“消息筛选器显示应用程序正在使用中”错误的解决方法;Asp.net中建立Microsoft.Office.Interop.Word.Application时出现“拒绝访问”错误的解决方法 。

AD:


C#读取Word文档是项目中要实现的一个功能,在服务器端打开一个Word模版文件,修改其内容后再下载到客户端使用,在Asp.net页面中建立Microsoft.Office.Interop.Word.Application对象时出现“拒绝访问”的错误,提示信息如下:

C#读取Word文档异常:拒绝访问

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.UnauthorizedAccessException: 拒绝访问。

ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。

如果应用程序正在通过<identity impersonate="true"/>模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。

若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

1、在命令行中输入:dcomcnfg,会显示出“组件服务”管理器

2、打开“组件服务->计算机->我的电脑->DCOM 配置”,找到“Microsoft Word文档”,单击右键,选择“属性”

3、在“属性”对话框中单击“安全”选项卡,在“启动和激活权限”处选择“自定义”,再单击右边的“编辑”,在弹出的对话框中添加“ASPNET”(在IIS6中是NETWORD SERVICE)用户,给予“本地启动”和“本地激活”的权限,单击“确定

4、在“属性”对话框中单击“安全”选项卡,在“访问权限”处选择“自定义”,再单击右边的“编辑”,在弹出的对话框中添加“ASPNET”(在IIS6中是NETWORD SERVICE)用户,给予“本地访问”的权限,单击“确定”,关闭“组件服务”管理器。

C#读取Word文档异常:消息筛选器显示应用程序正在使用中

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.Runtime.InteropServices.COMException: 消息筛选器显示应用程序正在使用中。

1、在命令行中输入:dcomcnfg,会显示出“组件服务”管理器

2、打开“组件服务->计算机->我的电脑->DCOM 配置”,找到“Microsoft Word文档”,单击右键,选择“属性”

3、在“属性”对话框中单击“标识”选项卡,选择“交互式用户””,关闭“组件服务”管理器。

修改好之后如果还不行,在 组件服务->计算机->我的电脑 上右键 "停止MS DTC"服务,然后再重启就可以了

C#读取Word文档时的异常相关分析就向你介绍到这里,希望对你处理实际开发工作中的C#读取Word文档有所掌握。

------------------------   ----------------------------   --------------------------------------------   ---------------------------------------------   -----------------------------   --------------------------

以上方法一般能解决问题,再次有同样解决方案:

asp.net 导出word格式的数据----8000401a,80070005错误


  asp.net 导出word格式的数据,检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败   

    使用asp.net开发导出word格式的数据,需要设置服务器的DCOM,是的网络用户有权限启动word程序才可以,否则会出错,类似:

    检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005

    检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 8000401a 。

    设置可以参考下面的网址

    

    ASP.NET生成WORD文档服务器部署注意事项

    

  1、Asp.net 2.0在配置Microsoft Excel、Microsoft Word应用程序权限时 error: 80070005 和8000401a 的解决总

  2007-11-01 11:30

  检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。

  控制面板-》管理工具-》组件服务-》计算机-》我的电脑-》DCom配置-》找到Microsoft Word文档

  之后

  单击属性打开此应用程序的属性对话框。 

  单击"安全"选项卡,分别在"启动和激活权限"和"访问权限"组中选中"自定义",然后

  自定义->编辑->添加ASP.NET账户和IUSER_计算机名

  * 这些帐户仅在计算机上安装有 IIS 的情况下才存在。

  13. 确保允许每个用户访问,然后单击确定。

  14. 单击确定关闭 DCOMCNFG。

  检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 8000401a 。

  运行dcomcnfg打开组件服务,

  依次展开"组件服务"->"计算机"->"我的电脑"->"DCOM配置"

  找到"Microsoft Excel应用程序"或"Microsoft Word应用程序",

  右键打开属性对话框,点击"标识"选项卡,

  点"下列用户",把管理员的用户密码正确填写进去...

  点击"安全"选项卡,

  依次把"启动和激活权限","访问权限","配置权限",都选择为自定义,

  然后依次点击它们的编辑,把everyone添加进去,并加入所有的权限...

  OK,解决此问题!

  2、请设置web.config中的<identity impersonate="true" userName="administrator" password="51aspx"/>帐号和密码,否则会提示检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。

  例如

  <system.web>

  <identity impersonate="true" userName="administrator" password="chuguo186"/>

  </system.web>
-----------------------------------
©著作权归作者所有:来自51CTO博客作者skydxd的原创作品,请联系作者获取转载授权,否则将追究法律责任
C#读写Word文档异常处理解析System.Runtime.InteropServices.COMException

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lijingguang

有钱捧个钱场,没钱捧个人场

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值