`

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——C#向Word文档中写入文字

    本实例中,首先创建了一个Windows窗体应用程序,然后使用C#操作Word文档,添加文本内容到Word文档中。 知识点1:Word文档的Range属性 Word文档中的Range属性是用来定义文档中的文本范围的。通过使用Range属性,...

    C#操作word文档(多种方法)

    在C#中操作Word文档,通常使用Microsoft Office Interop库,这是一个允许.NET应用程序与Office应用程序交互的组件。以下是一些关键知识点和实现方法: 1. **引用Microsoft Word对象库**: 在C#项目中,首先需要...

    C#操作word文档 C#实现Word中表格信息读取

    根据提供的文件信息,我们可以归纳出两个主要的知识点:一是如何使用C#操作Word文档并插入图片;二是如何利用C#批量替换Word文档中的书签文本。下面将对这两个知识点进行详细解析。 ### 一、使用C#操作Word文档并...

    C#操作word

    C#操作Word是指使用C#语言来操作Microsoft Word文档的过程。通过使用C#语言,可以实现对Word文档的读取、写入、编辑、打印等操作。本文将对C#操作Word的基本概念、实现方法、常见问题等进行详细的介绍。 一、基本...

    C#中使用自定义消息

    自定义消息是在Windows API中定义的,它们允许开发者扩展内置的消息系统,以处理应用程序特定的需求。在C#中,我们可以利用P/Invoke(Platform Invoke)技术调用Windows API函数来实现这一功能。 首先,定义一个...

    C#操作word里面的书签

    首先,我们需要了解如何在C#中使用Microsoft.Office.Interop.Word库来操作Word。这个库提供了与Word交互的接口,允许我们在代码中创建、读取和修改Word文档。以下是一些基本步骤: 1. 引用Microsoft.Office.Interop...

    c# 读取WORD的内容并显示在页面上

    - **创建Word应用程序实例**:创建一个Word应用程序实例,用于打开文档和执行其他操作。 ```csharp Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.Application...

    C#应用程序嵌入Word文档源码

    在本文中,我们将深入探讨如何使用C#编程语言在Windows Forms(WinForm)应用程序中嵌入和操作Microsoft Word文档。这个主题主要适用于那些希望通过C#与Word交互,创建、编辑或展示Word文档的开发者。我们将从标题和...

    c#操作word的编辑控件.rarc#操作word的编辑控件.rar

    当你需要在C#程序中集成Word编辑功能时,会涉及到Microsoft Office Interop库或者第三方控件的使用。本文将深入探讨如何利用C#来操作Word的编辑控件。 1. **Microsoft Office Interop**: 这是微软提供的一个接口,...

    c# word编辑器,winform 编辑器,word控件,word相关大全

    首先,"C# Word编辑器"是指在C#编程语言中创建的应用程序,能够对Word文档进行读取、编辑和保存等操作。这通常通过Microsoft的COM组件(Component Object Model)接口来实现,即使用InterOp服务,它可以调用Office...

    c#窗体应用程序实例

    6. **对话框(Dialogs)**:C#窗体应用程序还允许使用对话框,如打开文件对话框(OpenFileDialog)、保存文件对话框(SaveFileDialog)和消息框(MessageBox),以增强用户体验。 7. **多线程**:在一些复杂的应用...

    c# winform 显示word

    c# winform 显示word 解决了 不能在winform窗体上显示word文档的问题 该程序能完美的将word文档显示在winform窗体中

    C#用Word打开文档并显示内容

    在C#编程环境中,开发人员经常需要处理与Microsoft Office应用程序,特别是Word相关的任务。本教程将深入探讨如何使用C#来打开Word文档并显示其内容,这对于初学者来说是一个非常实用的技能。以下是你需要知道的关键...

    C#实现word转图片

    综上所述,"C#实现word转图片"涉及到的知识点包括C#编程、Adobe Professional API(尽管不是直接使用)、Ghostscript的集成、进程调用、图像处理、文件I/O、异常处理、多线程编程、设计模式以及服务器部署和配置。...

    C# 操作 Word 代码大全

    包括: C#操作Word.doc C#操作Word表格.doc C#操作WORD辅助类.txt c#操作word模板插入文字...C#操作Word在Word文档中插入图片.docx C#用word模板做文档.doc 收集的C#操作Word的各种代码。直接复制粘贴到程序里面即可。

    c#操作word进行批量查找和替换

    在C#编程环境中,利用Microsoft.Office.Interop.Word库可以实现对Word文档进行批量查找和替换的操作。这个功能在处理大量文档时非常有用,例如在企业中更新标准文本、修改报告模板或者统一格式等场景。以下是对这个...

    C#入门:基于C#的Windows窗口应用程序教程与实例

    本教程“C#入门:基于C#的Windows窗口应用程序教程与实例”是为那些希望踏入编程世界的初学者设计的,它将引导你从零开始学习如何使用C#和Visual Studio开发环境构建功能丰富的Windows应用程序。 首先,让我们深入...

    C#自编获取Windows任务管理器所有应用程序名称

    在本文中,我们将深入探讨如何使用C#编程语言来实现获取Windows任务管理器中的所有应用程序名称。这个功能在系统监控、性能分析或者自动化脚本中可能会非常有用。首先,我们需要理解Windows API(应用程序接口)的...

Global site tag (gtag.js) - Google Analytics