none
Erro na aplicação Web quando tento abrir o Word via código no servidor RRS feed

  • Pergunta

  • Olá pessoal, td bem? Já tentei postar essa pergunta no fórum de asp.net e saí de lá sem resposta.

    Já ví inúmeros links, li milhões de coisas, dei permissão em pasta, configurei até o sharing da pasta, fui no Dconfig, enfim...

    Quando tento fazer o meu website .Net no servidor acessar o Word, acontece esse erro:
    Lembrando q localmente ela funciona de boa.
    Sim, tenho Office instalado.
    Sim, tenho a versão pra desenvolvedor dele instalada.
    Não tenho Visual Studio no servidor.

    Alguém me ajuda please :(

    Server Error in '/' Application.

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

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

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

    ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6) that is used if the application is not impersonating. If the application is impersonating via <identity impersonate="true"/>, the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user.

    To grant ASP.NET access to a file, right-click the file in Explorer, choose "Properties" and select the Security tab. Click "Add" to add the appropriate user or group. Highlight the ASP.NET account, and check the boxes for the desired access.

    Source Error:

    An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

    Stack Trace:

    [UnauthorizedAccessException: Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed due to the following error: 80070005.]
    Contrato.OrganizarVariaveis() +6577
    Contrato.btn_gerar_contrato_Click(Object sender, EventArgs e) +5
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
    System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33

    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102


    Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42

    Rúbia Gardini - Desenvolvimento
    quarta-feira, 25 de março de 2009 16:32

Respostas

  • Obrigada pela resposta Daniel.

    Eu mesma consegui, depois de quebrar a cabeça que nem uma louca, resolver o problema...

    Acabei pegando o User do IIS, que tem as permissões de acesso de arquivo/pastas, e inseri essa permissão pra td q precisava, aí funcionou...

    Tive que inserir inclusive em Administrative Tools > Component Services > Computer > My Computer > Word Document
    E na pasta Program Files > Microsoft .Net

    Se alguma dessas pasta não estivesse com permissão, a aplicação deixava de rodar...

    É isso, muito obrigada.
    Rúbia Gardini - Desenvolvimento
    • Marcado como Resposta Rúbia segunda-feira, 30 de março de 2009 19:32
    segunda-feira, 30 de março de 2009 19:32

Todas as Respostas

  • Olá Rúbia,

    A questão é apenas acesso limitado ao seu servidor, é necessário que a conta do client que está acessando o servidor (as credenciais) exitam no servidor também (como uma autenticação no AD), o ideal a se fazer caso queira uma solução rápida é criar localmente uma conta com as mesmas caracteríscas da conta no servidor clonando uma conta existente no mesmo.

    Passe para seu servidor as credenciais utilizando System.Net.CredentialCache.DefaultCredential namespace.

    Existem mil maneiras de se acessar o servidor passando as credenciais corretas, de uma pesquisada no MSDN que tem muito exemplo interessante.

    Só uma dúvida... O Office está instalado no server?

    []'s
    Daniel Campos - Microsoft Innovation Center | Fortaleza - Brasil
    segunda-feira, 30 de março de 2009 19:26
  • Obrigada pela resposta Daniel.

    Eu mesma consegui, depois de quebrar a cabeça que nem uma louca, resolver o problema...

    Acabei pegando o User do IIS, que tem as permissões de acesso de arquivo/pastas, e inseri essa permissão pra td q precisava, aí funcionou...

    Tive que inserir inclusive em Administrative Tools > Component Services > Computer > My Computer > Word Document
    E na pasta Program Files > Microsoft .Net

    Se alguma dessas pasta não estivesse com permissão, a aplicação deixava de rodar...

    É isso, muito obrigada.
    Rúbia Gardini - Desenvolvimento
    • Marcado como Resposta Rúbia segunda-feira, 30 de março de 2009 19:32
    segunda-feira, 30 de março de 2009 19:32