Word自动化服务器端无法正常工作

时间:2013-04-23 20:22:35

标签: c# asp.net iis ms-word office-interop

前言:是的,我知道微软不建议这样做。但是,此服务器在严格受限的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进行开发机器调试时使用它时,这种方法有效,但在部署时,我的测试机器上没有任何内容。任何提示将不胜感激。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

正如您所知:MS在“类似服务器的场景”(IIS / ASP.NET是一种特殊的场景)中不支持Office Interop / Automation ...请参阅KB257757 < / em>的

您的选择包括几个图书馆(免费和商业) - 例如:

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