C#通过Windows服务打开Word文档

时间:2011-03-10 17:13:34

标签: c# ms-word

我在通过Windows服务打开Word 2007(DOCX)文档时遇到问题(通过具有管理员权限的帐户运行)。

        object fileNameO = templateFilename;

        _application.Visible = visible;
        _application.DisplayAlerts = WdAlertLevel.wdAlertsNone;

        //opening document
        _document = _application.Documents.OpenNoRepairDialog(ref fileNameO,
                                              ref _missing,
                                              ref _truevalue,
                                              ref _missing,
                                              ref _missing,
                                              ref _missing,
                                              ref _missing,
                                              ref _missing,
                                              ref _missing,
                                              ref _missing,
                                              ref _missing,
                                              ref _missing,
                                              ref _missing,
                                              ref _missing,
                                              ref _missing,
                                              ref _missing);
        //activating document
        _document.Activate();
_pocument.Activate()中的

_document;为null(System.NullReferenceException:对象引用未设置为对象的实例。)

我试图通过Open和OpenNoRepairDialog方法打开。

这很奇怪,因为当我尝试在控制台应用程序中运行线程(服务)时,一切正常!

请帮助:)

5 个答案:

答案 0 :(得分:1)

启动dcomcnfg.exe(组件服务)

然后是控制台根目录 - >组件服务 - >计算机 - >我的电脑 - > DCOM配置 - > Microsoft Word文档 - >右键单击(属性) - >标识选项卡

然后选择交互式用户,而不是启动用户。通过设置此MSWord将使用当前登录的用户的权限执行。

答案 1 :(得分:0)

检查您的com +应用程序安全性,以阐明您的服务运行帐户是否具有Word的相关权限

答案 2 :(得分:0)

在命令提示符下键入dcomcnfg,然后按Enter键; 在“应用程序”列表中找到并选择“Microsoft Word文档”,然后按“属性”按钮; 注意:如果您有Windows 2003 \ 2008,则在命令提示符下键入dcomcnfg,展开“组件服务”组,展开“计算机”组,展开“我的电脑”组,展开“DCOM配置”组,查找并选择“Microsoft Word文档” - >右键单击 - >属性。 单击“标识”选项卡。选中“此用户”复选框,按“浏览”并指定管理员帐户; 输入并重新输入管理员密码;

http://www.neevia.com/support/examples/cr/?get=ex002aspnet

答案 3 :(得分:0)

我已经尝试了以上所有方法,但没有任何效果。在Windows 10上,创建以下目录对我有用。

mkdir C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop

系统配置文件需要一个Desktop文件夹才能打开Office文件(Word,Excel等)

现在,我可以使用LocalSystem将C#应用程序作为服务运行。

看看Automating Office via Windows Service on Server 2008

答案 4 :(得分:0)

创建以下目录: C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop