Erro ao depurar um componente COM+ no Visual Basic IDE com um cliente ASP

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

Neste artigo

Sintomas

Quando um Componente COM+ versão 1.0 da Microsoft é depurado no Visual Basic 6.0 em um computador com o Microsoft Windows 2000, a seguinte mensagem de erro pode ser exibida no navegador quando o cliente estiver em uma página ASP (Active Server Pages):
Objeto de servidor, ASP 0178 (0x800A0005) Falha na chamada para Server.CreateObject ao verificar as permissões. Acesso negado ao objeto.
Quando um Componente COM+ versão 1.5 da Microsoft é depurado no Visual Basic 6.0 em um computador com o Microsoft Windows XP, a seguinte mensagem de erro pode ser exibida no navegador quando o cliente estiver em uma página ASP (Active Server Pages):
Objeto de servidor, ASP 0178 (0x800A0005) Falha na chamada para Server.CreateObject ao verificar as permissões. Acesso negado ao objeto.
O comportamento só ocorre quando o Componente COM+ é executado no IDE (integrated development environment) do Visual Basic. O erro não acontece quando o Componente COM+ é executado em um estado compilado em um aplicativo COM+.

Causa

O usuário da autenticação, normalmente a conta IUSR_<nome_do_computador>, caso esteja usando o acesso anônimo, não precisa ter as permissões correspondentes para acessar o Servidor DCOM (VB6.exe, no caso). Quando os Componentes COM+ são depurados no IDE do Visual Basic, o usuário da inicialização é o interativo; o usuário que acessa o Servidor DCOM é o da autenticação.

Como não há entrada DCOM para o VB6.exe, o DCOM usa as permissões padrão. No Windows 2000 e no Windows XP, as Permissões de acesso padrão DCOM só são concedidas à conta Sistema e ao usuário da inicialização, por padrão. Como os usuários da inicialização e o que acessa o Servidor DCOM não são os mesmos, a mensagem de erro mostrada na seção "Sintomas" é exibida.

Resolução

Há dois contornaos sugeridos:

Alternativa 1

Adicionar uma entrada DCOM para o VB6.exe no Registro. Isso lhe permite definir as permissões DCOM específicas para a depuração do Componente COM+ no Visual Basic.
  1. Crie uma entrada para Depuração VB ASP em DCOM:
    1. Inicie o Bloco de notas ou outro editor de textos e digite a seguinte sintaxe, que diferencia maiúsculas de minúsculas:
      REGEDIT4
      [HKEY_CLASSES_ROOT\CLSID\{70F214BA-94E2-4bdf-8F30-32CB4A905E4D}]
      @="VB ASP Debugging"
      [HKEY_CLASSES_ROOT\CLSID\{70F214BA-94E2-4bdf-8F30-32CB4A905E4D}\LocalServer32]
      @="vb6.exe"
      [HKEY_CLASSES_ROOT\AppID\vb6.exe]
      "AppId"="{70F214BA-94E2-4bdf-8F30-32CB4A905E4D}"
    2. Salve o arquivo como Vbaspdbg.reg.
    3. Localize a pasta em que o Vbaspdbg.reg foi salvo e clique duas vezes no arquivo (ele é registrado automaticamente no Registro do Windows).
  2. Adicione a conta Todos às permissões DCOM para a depuração ASP do Visual Basic.

    Windows 2000
    1. Inicie DCOMCNFG. No menu Iniciar, clique em Executar e digite dcomcnfg na caixa de diálogo.
    2. Na página Propriedades de Configuração distribuída do DCOM, clique na guia Aplicativos, selecione VB ASP Debugging na lista e clique em Propriedades.
    3. Na folha de propriedades VB ASP Debugging Properties, clique na guia Segurança e marque a caixa de seleção Utilizar permissões personalizadas de acesso. Clique em Editar.
    4. Na janela Permissões de Valor do Registro, clique em Adicionar e adicione a conta Todos para Permitir acesso.
    5. Clique em OK e em Aplicar para aplicar as alterações e fechar a página Propriedades de Configuração distribuída do DCOM.
    6. Reinicie o computador para que as alterações tenham efeito.
    Windows XP

    1. Inicie o COM+ Explorer. No menu Iniciar, Painel de Controle, clique em Ferramentas administrativas e em Serviços de componente.
    2. Expanda Serviços de componente, Computadores, Meu computador e Config DCOM.
    3. Clique com o botão direito do mouse em VB ASP Debugging e clique em Propriedades.
    4. Na guia Segurança, em Permissões de acesso, selecione Personalizar e clique em Editar.
    5. Na janela Permissões de acesso, clique em Adicionar e adicione a opçãoTodospara permitir acesso..
    6. Clique em OK, em Aplicar e em OK para aplicar as alterações e feche a página Propriedades de configuração de COM.
    7. Reinicie o computador para que as alterações tenham efeito.

Solução alternativa 2

  1. Para fins de depuração, configure a Proteção do aplicativo do Pasta virtual em que está a página ASP para "Alta (isolada)". Isso força a execução da página ASP em seu próprio processo, o que permite a alteração na segurança sem que isso afete o restante do site da Web.
    1. Inicie o Gerenciador do Internet Services.
    2. Clique com o botão direito do mouse na Pasta virtual em que está a página ASP e clique em Propriedades.
    3. Clique na guia Pasta virtual e selecione Alta (isolada) na lista suspensa Proteção do aplicativo.
    4. Clique em Aplicar.
  2. Desative o Acesso anônimo da Pasta virtual e verifique se as opções Autenticação integrada do Windows ou Autenticação básica estão selecionadas:
    1. Na caixa de diálogo Propriedades da Pasta virtual, clique na guia Segurança da pasta.
    2. Clique em Editar para Controle de acesso anônimo e autenticação.
    3. Verifique se a caixa de seleção Acesso anônimo está desmarcada.
    4. Clique em Autenticação integrada do Windows ou em Autenticação básica.
  3. Se a Autenticação integrada do Windows for usada, execute o navegador do cliente para acessar a página ASP na mesma conta da sessão de depuração do IDE do Visual Basic. Se a Autenticação básica for usada, digite o nome de usuário e a senha da mesma conta de usuário usada na sessão de depuração do IDE do Visual Basic.

    Observação A segunda alternativa pressupõe que "Permissões de acesso padrão" COM não foi alterada. Se elas nunca foram alteradas, COM criará uma lista de controle de acesso (ACL) concedendo permissão à conta Sistema e à Identidade do servidor. Nessa situação, a Identidade do servidor é o usuário que fez logon durante a execução da sessão de depuração do IDE do Visual Basic. Se as "Permissões de acesso padrão" DCOM foram alteradas, a segunda alternativa exigirá que a conta de usuário usada na sessão de depuração do IDE do Visual Basic seja adicionada às "Permissões de acesso padrão". Isso pode ser feito por meio de DCOMCNFG. Para obter informações adicionais, consulte o link "Segurança COM" na seção "Mais informações".

Situação

Esse comportamento é próprio do projeto.

Mais Informações

Esse comportamento não acontece no Microsoft Windows NT 4.0 e no IIS 4.0. Para obter informações adicionais sobre o erro ASP 0178 em um computador com o Windows NT 4.0, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento da Microsoft:
198432 PRB: Erro de objeto do servidor 'ASP 0178' ao criar nova instância do objeto COM
Para obter informações adicionais sobre a segurança COM, consulte o seguinte site da Microsoft Developer Network (MSDN) (em inglês):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/htm/security_0icz.asp

Propriedades

ID do artigo: 259725 - Última revisão: sábado, 24 de dezembro de 2005 - Revisão: 4.1
A informação contida neste artigo aplica-se a:
  • Microsoft Active Server Pages 4.0 nas seguintes plataformas
    • Microsoft Windows 2000 Standard Edition
    • Microsoft Windows XP Professional
  • Microsoft Visual Basic 6.0 Enterprise Edition
Palavras-chave: 
kbbug kbdebug kbprb kbvbp600 kbcomplus KB259725

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