Usando Microsoft.Office.Interop.Word no SharePoint retornando objeto null
Olá! 🙂
Overview:
Muitas vezes utilizamos a integração com os produtos Office em nossas aplicações. E neste caso, não foi diferente. Usando Event Receiver no SharePoint, queria gerar um arquivo Word com informações do item adicionado a uma lista.
Cenário:
Primeiro desenvolvi uma aplicação local (fora do SharePoint) para criar, escrever e salvar o arquivo Word, tudo em runtime. Tudo funcionando perfeitamente. Próximo passo, desenvolver a mesma aplicação e botar pra rodar dentro do SharePoint.
Ao chegar neste passo, e depois de algum troubleshooting, vi que a aplicação estava retornando um objeto nulo ao tentar abrir o arquivo usando o Microsoft.Office.Interop.Word.
ERRO:
O erro ocorria na seguinte linha:
…
Application app = new Application();
Document doc = new Document();
doc = app.Documents.Open(ref FileName, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing, ref Missing);
…
A linha indicada acima não conseguia abrir o arquivo especificado, retornando null.
SOLUÇÃO:
Depois de 6h!! de muita pesquisa, descobri que tínhamos um problema com as propriedades no dcomconfig, mais especificamente com o Identity.
Para resolver meu problema alterei o Identity para Interactive User e funcionou! 😉
Os passos:
1. Abra o Executar (Run) e digite dcomcnfg.
2. Vá em Component Services > Computers > My Computer > DCOM Config > Microsoft Office Word 97 – 2003 Document
3. Clique com o botão direito: Propriedades
4. Vá na tab de Identity
5. Mude para Interactive User.
Abraço!