首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建visio文件是从控制台应用程序中运行的,而不是从windows服务运行的。

创建visio文件是从控制台应用程序中运行的,而不是从windows服务运行的。
EN

Stack Overflow用户
提问于 2020-06-30 14:10:55
回答 3查看 551关注 0票数 2

下面的代码打开visio文件:

代码语言:javascript
运行
复制
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服务时会出现以下错误:

代码语言:javascript
运行
复制
System.Runtime.InteropServices.COMException (0x86DB03E7): An exception occurred. at Microsoft.Office.Interop.Visio.DocumentsClass.OpenEx(String FileName, Int16 Flags) 

一些注意事项:

  1. 我们以Windows的身份在特定的服务帐户下运行作业(也是作为服务器上的本地管理员添加的)
  2. 我们找不到有关错误的任何信息: 0x86DB03E7。
  3. 我们正在运行Azure VM - windows server 2019 (64位),visio 2016 64 bit中的代码。
  4. 同样的应用程序在我们的服务器上运行的很好。我们正在迁移到Azure服务器,但它不起作用。我们比较了两台服务器上的所有设置。

有人知道0x86DB03E7错误是关于什么的吗?为什么它不能从windows服务中运行?

EN

回答 3

Stack Overflow用户

发布于 2020-07-10 06:02:31

在完成DCOM配置更改后,它在Windows server 2012上工作:

  • 在服务器上安装visio
  • 开始>运行> dcomcnfg
  • 导航到组件服务>计算机>我的计算机> DCOM Config
  • 找到Microsoft Visio 2003-2010绘图。
  • 右击>属性
  • 在“安全性”选项卡上:在“启动和激活权限”下选择“自定义”,然后单击“编辑…”
  • 添加用户并分配本地启动和本地激活权限
  • 在identity选项卡上,确保进程设置为"This User:“,并输入您的用户帐户和密码。

对于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

票数 2
EN

Stack Overflow用户

发布于 2020-06-30 16:12:55

这篇文章中所述,Microsoft应用程序在Windows上下文中运行时可能会遇到问题。许多操作根本无法工作。

要想启动Visio,您必须在一个“常规”Windows帐户中运行您的服务--在这个帐户中,您已经安装了Visio,并且可以正常/交互地启动它。如果您从未在那里安装过Visio,那么特定的服务帐户将是不够的。

票数 1
EN

Stack Overflow用户

发布于 2022-06-29 17:12:38

要使Visio作为Windows服务运行(在后台),请确保文件夹“桌面”和“文档”存在于:

C:\Windows\sysWOW64 64\config\systemprofile C:\Windows\system32 32\config\system32配置文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62659391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档