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

C#读取Word文档时会有什么异常呢?那么这里向你介绍了Asp.net中建立MS office组件时出现“拒绝访问”和“消息筛选器显示应用程序正在使用中”错误的解决方法;Asp.net中建立Microsoft.Office.Interop.Word.Application时出现“拒绝访问”错误的解决方法 。
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 上为网络服务)。
如果应用程序正在通过模拟,则标识将为匿名用户(通常为 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文档服务器部署注意事项
   Asp.net 2.0在配置Microsoft Excel、Microsoft Word应用程序权限时 error: 80070005 和8000401a 的解决总
检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
  控制面板-》管理工具-》组件服务-》计算机-》我的电脑-》DCom配置-》找到Microsoft Word文档之后,单击属性打开此应用程序的属性对话框。单击"安全"选项卡,分别在"启动和激活权限"和"访问权限"组中选中"自定义",然后自定义->编辑->添加ASP.NET账户和IUSER_计算机名*这些帐户仅在计算机上安装有 IIS 的情况下才存在。
  确保允许每个用户访问,然后单击确定。
  单击确定关闭 DCOMCNFG。
  检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 8000401a 。
  运行dcomcnfg打开组件服务,
  依次展开"组件服务"->"计算机"->"我的电脑"->"DCOM配置"
  找到"Microsoft Excel应用程序"或"Microsoft Word应用程序",
  右键打开属性对话框,点击"标识"选项卡,
  点"下列用户",把管理员的用户密码正确填写进去...
  点击"安全"选项卡,
  依次把"启动和激活权限","访问权限","配置权限",都选择为自定义,
  然后依次点击它们的编辑,把everyone添加进去,并加入所有的权限...
  OK,解决此问题!
  2、请设置web.config中的帐号和密码,否则会提示检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。
  例如
  
  
  



你可能感兴趣的:(B,Code)