我在通过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方法打开。
这很奇怪,因为当我尝试在控制台应用程序中运行线程(服务)时,一切正常!
请帮助:)
答案 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文档” - >右键单击 - >属性。 单击“标识”选项卡。选中“此用户”复选框,按“浏览”并指定管理员帐户; 输入并重新输入管理员密码;
答案 3 :(得分:0)
我已经尝试了以上所有方法,但没有任何效果。在Windows 10上,创建以下目录对我有用。
mkdir C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop
系统配置文件需要一个Desktop文件夹才能打开Office文件(Word,Excel等)
现在,我可以使用LocalSystem将C#应用程序作为服务运行。
答案 4 :(得分:0)
创建以下目录: C:\ Windows \ SysWOW64 \ config \ systemprofile \ Desktop