0

我尝试使用互操作打开 .doc 文件,当我在 Visual Studio 中调试代码时,结果是一个文件,但我将 Web 发布到 IIS 结果为空。我使用的是 Windows server 2012 64bit 和 Microsoft Office 2007。为什么导致 IIS 返回 null 和解决方案?

 var wordApp = new Application { Visible = false };
 var path = Request.PhysicalApplicationPath + "File\\TestFile.doc";
 object srcPath = path;
 var wordDoc = wordApp.Documents.Open(ref srcPath);
4

2 回答 2

1

当您从 Visual Studio 执行程序时,代码使用登录用户调用 COM 组件(Microsoft Word)。一般登录用户有权限在 COM 组件上执行调用。所以代码将在 Visual Studio 中工作。

当您将网站发布到 IIS 中时,它会使用 IIS 的默认用户来调用 COM 组件。如果该用户没有权限,则调用失败并引发异常。首先找出 IIS 正在使用的用户。将该用户添加到特定的 COM 组件并授予执行调用的权限。

于 2013-06-16T16:49:29.390 回答
0
  1. 开始 > 运行 > dcomcnfg
  2. 导航到组件服务 > 计算机 > 我的电脑 > DCOM 配置
  3. 定位到“Microsoft Word 97 – 2003 文档”> 右键单击​​ > 属性
  4. 在安全选项卡上:选择所有无线电到(使用默认值)
于 2019-06-28T21:07:07.670 回答