下面的代码打开visio文件:
Microsoft.Office.Interop.Visio.Document vXfuncStencil = null;
var app = new Microsoft.Office.Interop.Visio.Application();
vXfuncStencil = app.Documents.OpenEx(@"C:\Program Files\Microsoft Office\Office16\Visio Content\1033\XFUNC_U.VSSX", 4);
app.Quit();
它在控制台应用程序中运行良好,但在运行windows服务时会出现以下错误:
System.Runtime.InteropServices.COMException (0x86DB03E7): An exception occurred. at Microsoft.Office.Interop.Visio.DocumentsClass.OpenEx(String FileName, Int16 Flags)
一些注意事项:
有人知道0x86DB03E7错误是关于什么的吗?为什么它不能从windows服务中运行?
发布于 2020-07-10 06:02:31
在完成DCOM配置更改后,它在Windows server 2012上工作:
对于Windows server 2019:我们咨询了微软的支持部门,他们说:“微软Office的所有当前版本都是设计、测试和配置成在客户端工作站上作为终端用户产品运行的。它们假设是一个交互式桌面和用户配置文件。它们不提供为满足服务器端组件的需要而需要的可重入性或安全性,这些组件的设计是为了无人值守的。”
有关更多细节,请访问https://support.microsoft.com/en-us/help/257757/considerations-for-server-side-automation-of-office。
他们建议使用Open来创建和操作visio文件。有关更多细节,请访问https://learn.microsoft.com/en-us/office/client-developer/visio/visio-file-format-reference。
发布于 2020-06-30 16:12:55
如这篇文章中所述,Microsoft应用程序在Windows上下文中运行时可能会遇到问题。许多操作根本无法工作。
要想启动Visio,您必须在一个“常规”Windows帐户中运行您的服务--在这个帐户中,您已经安装了Visio,并且可以正常/交互地启动它。如果您从未在那里安装过Visio,那么特定的服务帐户将是不够的。
发布于 2022-06-29 17:12:38
要使Visio作为Windows服务运行(在后台),请确保文件夹“桌面”和“文档”存在于:
C:\Windows\sysWOW64 64\config\systemprofile C:\Windows\system32 32\config\system32配置文件
https://stackoverflow.com/questions/62659391
复制相似问题