Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Adriano MSB

Erro ao acessar DLL do Word na produção

Recommended Posts

Pessoal tenho uma aplicação que precia abrir um Arquivo .doc adicionar um cabeçalho e rodapé. Até ai tudo tranquilo, já fiz e funciona perfeitamente na minha maquina em tempo de desenvolvimento.

 

Ao publicar a aplicação da o seguinte erro:

Retrieving the COM class factory for component with CLSID {00020906-0000-0000-C000-000000000046} failed due to the following error: 80070005.

 

Mesmo publicando na minha própria maquina (a mesma que uso para desenvolver e que funciona perfeitamente pelo VS) da o erro a cima, quando coloco em algum servidor da o mesmo erro.

 

O WORD ESTÁ SIM INSTALADO EM TODOS OS SERVIDORES QUE TENTEI, E SIM É A MESMA VERSÃO DO WORD QUE USEI PARA DESENVOLVER.

 

Pesquisando na net todo mundo diz que esse problema é permissão no serviço de componente para o objeto do word. Agora a pergunta é, alguem sabe me dizer exatamente qual a permissão que tenho que dar? Já fui em propriedades no objeto do word em serviços de componente e dei permissão total para todos os usuarios da maquina, ja dei permissão total para todos os usuários em permissões padrão do serviço de componente, ja dei permissão total na pasta da aplicação para todos os usuários e nada funciona, a mensagem continua sempre a mesma. Então gostaria de uma ajuda, se é permissão mesmo onde devo dar?

 

E um agravante para a situação é que meu software é um produto e como tal esta instalado em inúmeros clientes. No servidor da empresa eu posso fazer testes a vontade, mas nos clientes tenho que ir direto ao ponto para fazer funcionar, por isso que preciso saber a receita de bolo exata que faz o treco funcionar.

 

Para os mestres do forum uma pergunta, se por acaso eu usar aqueles projetos do office, disponiveis no .net, terei o mesmo problema? Eles conversam com o serviço de componente também ou tem alguma arquitetura própria? Seria uma solução partir pra eles? Se for alguem tem algum tutorial de como usa-los?

 

Desde já agradeço a ajuda.

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, não sei se vou poder ajudar muito, mas vou tentar.

 

Que DLL você está usando? Pelo visto não é a Blablabla.Interop.Word.Blablabla né?

Já tentou registar a DLL? Ela está na pasta Bin do projeto compilado?

No IIS, está habilitado permissão de escrita? Tem outro tipo de permissão aqui que eu esqueci o nome, algo como Permissão de executar programas compilados ou executaveis, algo assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Estou usando a dll,

Microsoft.Office.Interop.Word.dll

 

Quando eu publiquei foi gerado na pasta bin, as DLLs

Microsoft.Office.Interop.Word.dll

Microsoft.Vbe.Interop.dll

 

Sim no IIS tem permissão de Escrita

 

Com relação a outra permissão, não sei se seria o caso, mais via código eu chamo um programa que fica no servidor, feito em vb6, através do System.Diagnostics.Process e funciona perfeitamente, uma vez isso funcionando ela entraria no mesmo caso que você citou, de permissão para executar programas e executáveis compilados?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz uma rápida pesquisa e realmente é algo ligado com permissão.

Vai no IIS, no Application Pool tem uma propriedade com 3 valores possíveis, Serviço Local, Serviço de Rede e Mais algum outro valor.

O default é Serviço de Rede, coloque Serviço Local e tente novamente.

Este serviço local executa com maiores permissões.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu sei que faz tempo que foi aberto este item, mas como não tinha encontrado resposta em nenhum lugar, segue solução para quem precisar.

 

1- No IIS, no Pool de aplicativo utilizado pela aplicação, mudar o atributo Identidade para LocalSystem

2- Criar uma pasta chamada Desktop dentro dos seguintes diretórios no servidor:

C:\Windows\System32\config\systemprofile

e

C:\Windows\SysWOW64\config\systemprofile

 

Depois disso, dar permissão completa para estas duas pastas ao grupo de usuários do IIS: IIS_IUSRS

 

Isto fará com que este usuário tenha um "desktop" para trabalhar, conseguindo assim o IIS usar a biblioteca do Word.

 

Espero que ajude alguém.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.