Word Automation from IIS

2019-01-29 07:25发布

问题:

I created a Windows application which starts a Word process (Microsoft.Office.Interopt.Word) with C#. I load two addins word.AddIns.Add(@"C:\temp\addin.dot", true);. This code works perfectly fine within my windows application.

To be able to start this process remotly, I created a MVC web application. The web app uses the same code, but it failes on the part where I load the addins:

error: Word cannot open this document template: (C:\temp\addin.dot)

The web application uses an application pool with administrator permissions and following settings:

  • Enable 32-Bit Applications: True
  • Load User Profile: True

Does anyone have an idea what the problem could be? Why does the same code behave differently on the web server?

Edit: The task manager shows me that the word process gets started with the correct user account. It is the same account as I use, when I start the windows application.

回答1:

Web servers aren't meant to run user applications. Since you're using a COM reference, the library requires the application to be running to perform manipulations.

If you're looking to automate document generation/reading, my advise would be to use a library like DocX. This would enable you to work directly with the file format itself without bringing in COM references (the interop libraries).