none
problema ao atualizar aplicação ASP.NET com utilização de componentes COM+ RRS feed

  • Pergunta

  • Olá, pessoal. Estou com um problema ao tentar atualizar uma aplicação WEB (ASP.NET) rodando no IIS 6.0 que utiliza componentes COM+ (VB 6.0). Estou utilizando a dll de interoperabilidade criada automaticamente pelo Visual Studio (2005) como interface entre o "managed code" e o "unmanaged code". Não sei se é preciso setar nothing para o objeto COM+ para que o GC possa limpá-lo, mas estou fazendo isso. Ex.:

     

    Code Block

    Dim objBusca As New OIPAtendimentosNg.GuiasTrocasNg

    Dim objDados As Object = objBusca.obtemDadosRelTroca()

    objBusca = Nothing

     

     

     

    Um primeiro problema é que se esta DLL estiver somente no Serviço de Componentes do servidor (onde também está o web server) ao tentar instanciar um objeto o seguinte erro me aparece:

     

    Retrieving the COM class factory for component with CLSID {089E3228-6555-4A98-A872-52D1760EB73A} failed due to the following error: 80040154

    System.Runtime.InteropServices.COMException

     

    Daí, tenho que registrá-la (regsvr32). Não é possível utilizar componentes do COM+ Services?

    O segundo problema é que toda vez que faço um novo deploy da aplicação (Publish Web Site) e preciso atualizar os componentes COM+, tenho que reiniciar o servidor pois a DLL de negócio (referenciada no Visual Studio pela Interop.XXX) fica "bloqueada" como se algo ainda estivesse utilizando-a. Isso ocorre mesmo reiniciando o IIS. Está sendo um tormento. Algo está errado na forma como estou fazendo isso?

    sexta-feira, 30 de novembro de 2007 18:18