1

前言:是的,我知道微软不建议这样做。但是,此服务器在严格限制的 VLAN 中面向内部。

目标是自动生成我无法使用 Office XML 正确格式化的特定类型的报告。Microsoft 不建议这样做的原因之一是用户帐户必须是交互式的(即不是 ASPNET)。因此,如果我将应用程序池标识设置为以用户身份运行,我将不再收到 COM 错误,但 Word 仍然无法使用以下测试代码打开:

//Just checking if Word can be accessed
Word.Application app = new Word.Application();
app.Visible = true;

我没有收到任何错误,但 Word 无法打开。当我在使用 Visual Studio 调试的开发机器上使用它时,这很有效,但是在部署时在我的测试机器上我什么也没得到。任何提示将非常感谢。

4

2 回答 2

3

即使应用程序池在用户帐户下运行,也不意味着它是交互式的并且可以访问您的桌面。您可以检查正在运行的进程列表以了解 Word 是否存在。

于 2013-04-23T20:25:11.653 回答
0

如您所知:在“类似服务器的场景”(IIS/ASP.NET 是一种特殊的场景)中,MS 不支持 Office 互操作/自动化...参见KB257757

您的选项包括几个库(免费和商业) - 例如:

由于 Windows Vista 已经引入了一些更改来阻止任何 Windows 服务(IIS 只是一些特殊的服务)执行任何“类似桌面”的操作 - 这是由于安全问题......要解决这种情况,您需要规避那些MS实施的安全措施-我绝对不推荐...

于 2013-04-23T20:26:10.740 回答