`

C#操作Word异常:消息筛选器显示应用程序正在使用中

    博客分类:
  • C#
 
阅读更多

.net环境,C#语言开发,操作word时,出现异常,而异常是在数据量多的时候出现,数据量相对较少时不出现。显然不是权限问题。

经验证,怀疑是word拼写检查造成的。

当向word 插入大量数据后,word 的自动拼写检查检测到大量的拼写错误,于是word 弹出了一个提示框,提示用户存在过多的拼写错误。而我们程序操作word 是让word 运行在后台,所以程序并不知道word弹了一个对话框。当程序继续向word 插入数据时,因为word 的对话框阻塞的word 的进程,所以就会报“消息筛选器显示应用程序正在使用中”错误。

 

本次异常的信息如下:

消息筛选器显示应用程序正在使用中。 (异常来自 HRESULT:0x8001010A (RPC_E_SERVERCALL_RETRYLATER))

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

 

异常详细信息: System.Runtime.InteropServices.COMException: 消息筛选器显示应用程序正在使用中。 (异常来自 HRESULT:0x8001010A (RPC_E_SERVERCALL_RETRYLATER))。

源错误: 

 

 

行 19190:                object missingValue = Type.Missing;

行 19191:                object doNotSaveChanges = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;

行 19192:                doc.Close(ref doNotSaveChanges, ref missingValue, ref missingValue);

行 19193:                appword.Application.Quit(ref miss, ref miss, ref miss);

行 19194:                doc = null;

 

源文件: d:\VisualStudio2013\Projects\SmartTDMP20170907\Cmdi.Smart.BLL\Report.cs    行: 19192 

 

堆栈跟踪: 

 

 

[COMException (0x8001010a): 消息筛选器显示应用程序正在使用中。 (异常来自 HRESULT:0x8001010A (RPC_E_SERVERCALL_RETRYLATER))]

   Microsoft.Office.Interop.Word.DocumentClass.Close(Object& SaveChanges, Object& OriginalFormat, Object& RouteDocument) +0

   Cmdi.Smart.BLL.Report.ProjectDesignSafeReport(String cProjectGuid) in d:\VisualStudio2013\Projects\SmartTDMP20170907\Cmdi.Smart.BLL\Report.cs:19192

   SmartTMP.ControllersAddDesignF.DesignManageController.exportDesignReport() in d:\VisualStudio2013\Projects\SmartTDMP20170907\SmartTMP\Controllers\DesignManageController.cs:7183

   lambda_method(Closure , ControllerBase , Object[] ) +101

 

为了避免这个错误,使用word操作函数关闭word的拼写检查,问题解决了。

 

                appword = new Microsoft.Office.Interop.Word.Application();

                appword.Visible = false;

                object objTrue = true;

                object objFalse = false;

                object objDocType = Microsoft.Office.Interop.Word.WdDocumentType.wdTypeDocument;

                doc = (Microsoft.Office.Interop.Word.DocumentClass)appword.Documents.Add(ref tempeletePath, ref objFalse, ref objDocType, ref objTrue);

                doc.SpellingChecked = false;//关闭拼写检查

                doc.ShowSpellingErrors = false;//关闭显示拼写错误提示框

 

分享到:
评论

相关推荐

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

    本文将详细介绍在Asp.net环境中使用`Microsoft.Office.Interop.Word.Application`对象时可能出现的“拒绝访问”及“消息筛选器显示应用程序正在使用中”等异常,并提供相应的解决方案。 #### 二、异常分析与解决...

    明日科技C#开发入门及项目实战

    实例148 在水晶报表中使用公式字段 实例149 设计分组统计报表 实例150 打印一个空学生证 实例151 自定义横向或纵向打印 实例152 自定义打印页码范围 第14章 文件及数据流技术 实例153 根据日期动态建立文件 实例154...

    《C#经典编程220例》.(明日科技).【带书签】-共3部分

    实例148 在水晶报表中使用公式字段 260 实例149 设计分组统计报表 261 实例150 打印一个空学生证 264 实例151 自定义横向或纵向打印 266 实例152 自定义打印页码范围 268 第14章 文件及数据流技术 271 实例153 根据...

    C#全能速查宝典

    《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...

    ASP.NET 3.5 开发大全word课件

    3.4.3 分层设计中使用命名空间 3.5 类的方法 3.5.1 编写方法 3.5.2 给方法传递参数 3.5.3 通过引用来传递参数 3.5.4 方法的重载 3.6 封装 3.6.1 为什么要封装 3.6.2 类的设计 3.7 属性 3.7.1 语法 3.7.2 只读/只写...

    2021-2022计算机二级等级考试试题及答案No.950.docx

    exe:可执行文件的扩展名,在Windows系统中使用。 - **正确答案**: B. class ### 表结构修改工具 - **选项分析**: - A. 表设计器:用于创建或修改表结构的工具。 - B. 数据库设计器:通常用于设计整个数据库的...

    2021-2022计算机二级等级考试试题及答案No.11786.docx

    - **软件运行环境**: 为应用程序提供运行环境,包括但不限于进程管理、内存管理、文件系统支持等。 ### 4. ASCII码 **ASCII**(American Standard Code for Information Interchange)码是基于拉丁字母的一套电脑...

    在线招聘管理系统

    在线招聘管理系统是一款基于C#编程语言开发的应用程序,主要用于企业的人力资源部门进行高效、便捷的招聘流程管理。系统的核心功能可能包括发布职位、收集应聘者简历、筛选候选人、安排面试以及跟踪招聘进度等。由于...

Global site tag (gtag.js) - Google Analytics