none
Microsoft.Office.Interop.Word RRS feed

  • Pergunta

  • Pessoal, boa tarde!!

    Estou utilizando a DLL Microsoft.Office.Interop.Word para copiar e editar arquivos no Microsoft Word. Na minha máquina rodando pelo visual studio funciona normalmente, mas não no servidor publicado no IIS.

    Verifiquei que o problema está com a edição, porque o arquivo é copiado para pasta. O erro que aconteceu inicialmente foi :

     

    Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005. ExceptionType":"System.UnauthorizedAccessException

    O erro acima parou após mexer em permissões do componentes de serviço na aba de segurança COM, e passou a mostrar um novo erro:

    Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80080005. ExceptionType":"System.Runtime.InteropServices.COMException

    Alguém tem ideia o que acontece?

    Aceito sugestões para uma solução alternativa para copiar e editar arquivo Word. Não sei se estou usando a melhor solução.

    Obrigado.

    segunda-feira, 28 de setembro de 2015 16:21

Respostas

  • William, eu resolvi fazendo isso:

    1. In the command line put DCOMCNFG
    2. Component Services -> Computers -> My Computer -> DCOM Config
    3. Find "Microsoft Word 97 - 2003 Document" (If it is missing check if your Word is also 64 bit (if your Windows is))
    4. Right click -> Properties
    5. Go To Tab Security and Edit the "Customize" radio buttons so that IIS_IUSRS could have rights for launch and access
    6. Go to Tab Identity and choose "The interactive user"
    7. Apply changes and try again

    Não tenho conhecimento avançados em windows para avaliar se essa alteração vai me gerar problemas. Sabe alguma coisa?

    • Marcado como Resposta Marcos SJ terça-feira, 29 de setembro de 2015 18:03
    segunda-feira, 28 de setembro de 2015 18:45

Todas as Respostas

  • O problema é que voce nao deve ter instalado o word no servidor IIS. 

    O codigo que voce executa é no lado do servidor. Quando voce roda no visual studio, cliente e servidor estao na mesma maquina e voce deve ter instalado o Word. Quando voce executa no IIS nao existe word e voce obtem o erro.

    Que tipo de ediçao voce esta tentando fazer? Eu nao uma saida facil para isso, pois voce deveria executar isso no lado do cliente o que nao é trivial. Motvo: segurança.

    Word é um aplicatvo windows.. se uma pagina asp.net tem controle sobre um aplicatvo local, imagine o possivel estrago... voce poderia simplesmente abrir o CMD e executar um "format" e apagar todo o conteudo. Por isso paginas nao executam codigos locais (a maioria dos browser vao te impedir isso)

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------


    segunda-feira, 28 de setembro de 2015 16:51
    Moderador
  • William, boa tarde !!

    Obrigado por responder.

    Eu instalei o office quando estava com um outro erro. Funcionou para o erro, mas ai veio esses que compartilhei aqui.

    Sobre essa questão de segurança, eu li isso em outros fóruns, não recomendado instalar o word no lado servidor, mas como não consegui achar uma solução alternativa estava tentado resolver esses erros.

    Sobre a edição que estou fazendo no arquivo word, eu tenho arquivos com diferentes layouts, onde tenho strings entre "{{}}" que substituo por valores específicos de um processo selecionado. Por isso eu copio o arquivo original e faço a edição na copia.

    Tem algum exemplo de como eu posso fazer para executar essa edição no lado cliente?

    Obrigado novamente pela atenção.

    segunda-feira, 28 de setembro de 2015 17:33
  • William, eu resolvi fazendo isso:

    1. In the command line put DCOMCNFG
    2. Component Services -> Computers -> My Computer -> DCOM Config
    3. Find "Microsoft Word 97 - 2003 Document" (If it is missing check if your Word is also 64 bit (if your Windows is))
    4. Right click -> Properties
    5. Go To Tab Security and Edit the "Customize" radio buttons so that IIS_IUSRS could have rights for launch and access
    6. Go to Tab Identity and choose "The interactive user"
    7. Apply changes and try again

    Não tenho conhecimento avançados em windows para avaliar se essa alteração vai me gerar problemas. Sabe alguma coisa?

    • Marcado como Resposta Marcos SJ terça-feira, 29 de setembro de 2015 18:03
    segunda-feira, 28 de setembro de 2015 18:45