我创建了一个Windows应用程序,它用C#启动Word进程(Microsoft.Office.Interopt.Word)。我加载了两个插件单词。AddIns.Add(@"C:\temp\addin.dot", true);.这段代码在我的 Windows 应用程序中运行良好。
为了能够远程启动此过程,我创建了一个 MVC Web 应用程序。Web 应用程序使用相同的代码,但在我加载加载项的部分失败:
错误: Word 无法打开此文档模板: (C:\temp\addin.dot)
Web 应用程序使用具有管理员权限和以下设置的应用程序池:
- 启用 32 位应用程序:真
- 加载用户配置文件:真
有谁知道问题可能是什么?为什么相同的代码在 Web 服务器上的行为不同?
编辑:任务管理器向我显示单词进程从正确的用户帐户开始。当我启动Windows应用程序时,它与我使用的帐户相同。
Web 服务器不是用来运行用户应用程序的。由于使用的是 COM 引用,因此库要求运行应用程序才能执行操作。
如果您希望自动化文档生成/阅读,我的建议是使用像 DocX 这样的库。这将使您能够直接使用文件格式本身,而无需引入 COM 引用(互操作库)。