我尝试用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);
答案 0 :(得分:1)
当您从Visual Studio执行程序时,代码使用登录用户来调用COM组件(Microsoft Word)。通常,登录用户有权在COM组件上执行调用。所以代码可以在Visual Studio中使用。
当您将网站发布到IIS时,它使用IIS的默认用户来调用COM组件。如果该用户没有该权限,则调用失败并抛出异常。 首先找出IIS正在使用的用户。将该用户添加到特定的COM组件并授予执行调用的权限。
答案 1 :(得分:0)