CORRECÇÃO: Mensagem de erro "Não podem ser utilizado COM objecto" quando utiliza um objecto COM de STA que é criado utilizando Server.CreateObject e armazenadas no âmbito de sessão numa página Web diferente

Traduções de Artigos Traduções de Artigos
Artigo: 818612 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Criar um objecto COM (STA) apartamento single-threaded utilizando Server.CreateObject e, em seguida, guarde este objecto COM STA no âmbito de sessão. Se utilizar este objecto COM STA de outra página Web, receberá a seguinte mensagem de erro:
Não é possível utilizar o objecto COM que foi separado do respectivo RCW subjacente

Resolução

importante Para aplicar esta correcção, tem de ter o .NET Framework Service Pack 2 instalado.

Como obter a correcção

Este problema foi corrigido em Junho de 2003 ASP.NET 1.1 do pacote de correcção. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
821156INFO: O ASP.NET 1.1 pacote de conjunto de correcções de Junho de 2003
Não é possível obter esta correcção individualmente. Tem de instalar o conjunto.

Nota Quando pedir esta correcção, recebe o conjunto.

A versão inglesa desta correcção tem os atributos de ficheiro (ou posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas no formato de universal hora (UTC) coordenada Coordinated. Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário na ferramenta Data e hora no painel de controlo.
   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

Esta correcção também está disponível para a versão alemã do Microsoft .NET Framework 1.0. Esta correcção também está disponível para a versão francesa do Microsoft .NET Framework 1.0.

Se tiver aplicado a correcção incluída neste artigo para o Microsoft ASP.NET incluído com o .NET Framework 1.0 e se tiver actualizado para o Microsoft ASP.NET incluído com o .NET Framework 1.1, aplicar o pacote de correcções a partir do seguinte artigo da base de dados de conhecimento da Microsoft:
821156INFO: O ASP.NET 1.1 pacote de conjunto de correcções de Junho de 2003
Além disso, se tiver actualizado para o .NET Framework 1.1 e se detectar os sintomas deste artigo, aplicar o hotfix deste artigo da base de dados de conhecimento da Microsoft.

Ponto Da Situação

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

Mais Informação

Se criar um objecto STA utilizando Server.CreateObject (atributo AspCompat = "true") , pode usar o objeto apenas na página Web que criou para. Se armazenar o objeto no âmbito de sessão e, em seguida, tente aceder a ele partir de uma página Web diferente, receberá a mensagem de erro.

Além disso, se implementar o método OnStartPage e no método OnEndPage do objecto COM STA, estes métodos não são denominados sobre o objecto na segunda página Web.

Passos para reproduzir o comportamento

  1. Utilize o seguinte código de exemplo para criar um objecto COM do Microsoft Visual Basic 6.0 que tenha AspEventProblem.Class1 para IDProg :
    Public Function Test() As String
           Test = "Hello from COM Object"
    End Function
  2. Utilize o Microsoft Visual Basic .NET para criar uma nova aplicação Web.
  3. Crie um formulário da Web denominado WebForm1.aspx .
  4. Adicionar um objecto botão para WebForm1.aspx que contenha 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 um formulário Web denominada WebForm2.aspx que contenha 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 browser, visualizar WebForm1 e, em seguida, clique em Button1 .
  7. Quando WebForm2 aparecer, clique em Button1 .

Propriedades

Artigo: 818612 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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