CORRECÇÃO: Mensagem de erro "Objeto COM não pode ser utilizado" quando utiliza um objeto de COM STA que criado usando Server.CreateObject e armazenadas no escopo de sessão em uma página da Web diferente

Traduções deste artigo Traduções deste artigo
ID do artigo: 818612 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Você cria um single-threaded apartment (STA) COM objeto usando Server.CreateObject e, em seguida, armazene esse objeto COM STA no escopo de sessão. Se você usar esse objeto COM STA de outra página da Web, você receber a seguinte mensagem de erro:
Objeto COM que foi separado do seu RCW subjacente não pode ser usado

Resolução

importante Para aplicar esse hotfix, você deve ter o .NET Framework Service Pack 2 instalado.

Como obter o hotfix

Esse problema é corrigido em junho de 2003 ASP.NET 1.1 do pacote de Hotfix. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
821156INFO: O ASP.NET 1.1 pacote de Hotfix de junho de 2003
Não é possível obter essa correção individualmente. Você deve instalar o pacote cumulativo.

Observação Quando você solicita esse hotfix, você recebe o pacote cumulativo.

A versão em inglês deste hotfix apresenta os atributos de arquivo (ou posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas na acordo hora universal coordenada (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário na ferramenta Data e hora no painel de controle.
   Date         Time   Version       Size       File name
   --------------------------------------------------------------
   25-Apr-2003  03:19  1.0.3705.424    196,608  Aspnet_isapi.dll
   25-Apr-2003  03:19                  510,714  Aspnet_perf2.ini
   25-Apr-2003  03:15                    4,169  Aspnet_perf.h
   25-Apr-2003  03:19                  513,302  Aspnet_perf.ini
   25-Apr-2003  03:19  1.0.3705.424     24,576  Aspnet_regiis.exe
   25-Apr-2003  03:19  1.0.3705.424     28,672  Aspnet_wp.exe
   24-Apr-2003  15:49  1.0.3705.424     69,632  Corperfmonext.dll
   24-Apr-2003  15:47  1.0.3705.424    303,104  Mscorjit.dll
   25-Apr-2003  12:55  1.0.3705.424  1,953,792  Mscorlib.dll
   24-Apr-2003  15:48  1.0.3705.424  2,269,184  Mscorsvr.dll
   01-Aug-2002  18:38                       15  Smartnav.htm
   17-Oct-2002  14:55                    8,728  Smartnav.js
   24-Apr-2003  15:40                   10,284  Mscorlib.ldo
   24-Apr-2003  15:48  1.0.3705.424  2,269,184  Mscorwks.dll
   25-Apr-2003  12:59  1.0.3705.424  1,191,936  System.web.dll

Esse hotfix também está disponível para a versão em alemão do Microsoft .NET Framework 1.0. Esse hotfix também está disponível para a versão francesa do Microsoft .NET Framework 1.0.

Se você aplicou o hotfix descrito neste artigo para o Microsoft ASP.NET incluído com o .NET Framework 1.0, e se você atualizou para Microsoft ASP.NET incluído com o .NET Framework 1.1, aplique o pacote de hotfix do seguinte artigo da Base de dados de Conhecimento da Microsoft:
821156INFO: O ASP.NET 1.1 pacote de Hotfix de junho de 2003
Além disso, se você atualizou para o .NET Framework 1.1, e se você enfrentar os sintomas neste artigo, aplicar o pacote de hotfix deste artigo da Base de dados de Conhecimento Microsoft.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Mais Informações

Se você criar um objeto STA usando Server.CreateObject (atributo AspCompat = "true") , você pode usar o objeto apenas na página da Web que você criou para. Se você armazena o objeto no escopo de sessão e, em seguida, tentar obter acesso a ele de outra página da Web, você receberá a mensagem de erro.

Além disso, se você implementar o método OnStartPage e o método OnEndPage de seu objeto COM STA, esses métodos não são chamados em seu objeto na segunda página da Web.

Etapas para reproduzir o comportamento

  1. Use o seguinte código de exemplo para criar um objeto com do Microsoft Visual Basic 6.0 COM que tem AspEventProblem.Class1 para ProgId :
    Public Function Test() As String
           Test = "Hello from COM Object"
    End Function
  2. Use o Microsoft Visual Basic .NET para criar um novo aplicativo Web.
  3. Crie uma Web Form chamada WebForm1.aspx .
  4. Adicione um objeto de botão a WebForm1.aspx que contém o seguinte código de exemplo:
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As 	System.EventArgs) Handles MyBase.Load 
          Session("mycomp") =Server.CreateObject("AspEventProblem.Class1") 
    End Sub Private Sub
    Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
          Handles Button1.Click Response.Redirect("webform2.aspx") 
    End Sub 
  5. Criar uma Web Form chamada WebForm2.aspx que contém o seguinte código de exemplo:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Label1.Text = Session("mycomp").Test()
    End Sub
  6. No seu navegador, exibir WebForm1 e clique em Button1 .
  7. Quando WebForm2 for exibida, clique em Button1 .

Propriedades

ID do artigo: 818612 - Última revisão: terça-feira, 25 de outubro de 2005 - Revisão: 5.2
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 1.0
Palavras-chave: 
kbmt kbhotfixserver kbqfe kbqfe kbnetframe100presp3fix kbfix kbbug KB818612 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 818612

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com