打开doc文件为空IIS 7.5

时间:2013-06-16 16:11:44

标签: c# asp.net interop

我尝试用interop打开.doc文件,当我在Visual Studio中调试代码结果是一个文件但是我发布web到IIS结果为null。 我正在使用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);

2 个答案:

答案 0 :(得分:1)

当您从Visual Studio执行程序时,代码使用登录用户来调用COM组件(Microsoft Word)。通常,登录用户有权在COM组件上执行调用。所以代码可以在Visual Studio中使用。

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

答案 1 :(得分:0)

  1. 开始>运行> dcomcnfg
  2. 导航到组件服务>计算机>我的电脑> DCOM Config
  3. 找到“ Microsoft Word 97 – 2003文档”>右键单击>“属性”
  4. 在“安全性”标签上:选择所有电台(使用默认设置)