Ocorre um erro quando efectua a depuração de um componente COM+ no IDE do Visual Basic com um cliente ASP

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

Nesta página

Sintomas

Quando depura um Componente do Microsoft COM+ versão 1.0 no Visual Basic 6.0 num computador baseado no Microsoft Windows 2000, poderá aparecer a seguinte mensagem de erro no browser quando o cliente está numa página ASP (Active Server Pages):
Objecto de servidor, ASP 0178 (0x800A0005) A chamada a Server.CreateObject falhou durante a verificação de permissões. O acesso é negado a este objecto.
Quando depura um Componente do Microsoft COM+ versão 1.5 no Visual Basic 6.0 num computador baseado no Microsoft Windows XP, poderá aparecer a seguinte mensagem de erro no browser quando o cliente está numa página ASP (Active Server Pages):
Objecto de servidor, ASP 0178 (0x800A0005) A chamada a Server.CreateObject falhou durante a verificação de permissões. O acesso é negado a este objecto.
Este comportamento só ocorre quando executa o Componente COM+ a partir do IDE (integrated development environment) do Visual Basic. O erro não ocorre quando executa o Componente COM+ num estado compilado dentro de uma aplicação COM+.

Causa

O utilizador que autentica, normalmente a conta IUSR_<nome_computador> se estiver a utilizar o acesso anónimo, não tem as permissões adequadas para aceder ao Servidor DCOM (VB6.exe, neste caso). Quando está a depurar Componentes COM+ no IDE do Visual Basic, o utilizador que inicia é o utilizador interactivo; o utilizador que está a aceder ao Servidor DCOM é o utilizador que autentica.

Visto que não existe uma entrada DCOM relativa a VB6.exe, o DCOM utiliza as permissões predefinidas. No Windows 2000 e Windows XP, as Permissões de Acesso Predefinidas do DCOM só são concedidas à conta Sistema e ao utilizador que inicia, por predefinição. Visto que o utilizador que inicia e o utilizador que acede ao Servidor DCOM não são o mesmo, é apresentada a mensagem de erro apresentada na secção "Sintomas".

Resolução

Existem duas medidas sugeridas para contornar o problema:

Medida 1

Adicione uma entrada DCOM relativa a VB6.exe ao registo. Isto permite-lhe definir as permissões DCOM específicas para depurar o Componente COM+ no Visual Basic.
  1. Crie a entrada VB ASP Debugging no DCOM:
    1. Inicie o Bloco de Notas ou outro editor de texto e introduza o código seguinte (a sintaxe é sensível a maiúsculas e 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. Guarde o ficheiro como Vbaspdbg.reg.
    3. Localize a pasta onde guardou o ficheiro Vbaspdbg.reg e faça duplo clique neste (o ficheiro regista-se automaticamente no registo do Windows).
  2. Adicione a conta Todos às permissões DCOM para depuração ASP do Visual Basic.

    Windows 2000
    1. Inicie DCOMCNFG. No menu Iniciar, clique em Executar e escreva dcomcnfg na caixa de diálogo.
    2. Na página Distributed COM Configuration Properties, clique no separador Applications, seleccione VB ASP Debugging na lista e, em seguida, clique em Properties.
    3. Na folha de propriedades VB ASP Debugging Properties, clique no separador Securities e, em seguida, clique para seleccionar a caixa de verificação Use custom access permissions. Clique em Edit.
    4. Na janela Registry Value Permissions, clique em Add e adicione a conta Todos a Allow Access.
    5. Clique em OK e, em seguida, clique em Apply para aplicar as alterações e sair da página Distributed COM Configuration properties.
    6. Reinicie o computador para que as alterações sejam activadas.
    Windows XP

    1. Inicie o COM+ Explorer. No menu Iniciar, clique em Admin Tools e, em seguida, clique em Serviços de Componentes.
    2. Clique para expandir Serviços de Componentes, clique para expandir Computadores, clique para expandir O Meu Computador e, em seguida, clique para expandir Configuração de DCOM.
    3. Clique com o botão direito do rato em VB ASP Debugging e clique em Properties.
    4. No separador Securities, em Access Permissions, seleccione Customize e, em seguida, clique em Edit.
    5. Na janela Access Permission, clique em Add e, em seguida, adicione a opção Everyone account for Allow Access.
    6. Clique em OK, clique em Apply e, em seguida, clique em OK para aplicar as alterações e sair da página de propriedades de Configuração de DCOM.
    7. Reinicie o computador para que as alterações sejam activadas.

Medida 2

  1. Para efeitos de depuração, configure a Protecção da Aplicação do Directório Virtual onde a página ASP reside para "Alta (Isolada)". Isto força a página ASP a ser executada num processo próprio, o que permite que a segurança seja alterada sem afectar o resto do Web site.
    1. Inicie o Gestor de Serviços para a Internet.
    2. Clique com o botão direito do rato no Directório Virtual onde a página ASP reside e, em seguida, clique em Propriedades.
    3. Clique no separador Directório Virtual e, em seguida, seleccione Alta (Isolada) na lista pendente Protecção da Aplicação.
    4. Clique em Aplicar.
  2. Desactive o Acesso Anónimo para este Directório Virtual e certifique-se de que Autenticação Integrada do Windows ou Autenticação básica está seleccionado:
    1. Na caixa de diálogo Propriedades do Directório Virtual, clique no separador Segurança de Directório.
    2. Clique em Editar para Acesso anónimo e controlo de autenticação.
    3. Certifique-se de que a caixa de verificação Acesso anónimo não está seleccionada.
    4. Clique em Autenticação integrada do Windows ou Autenticação básica.
  3. Se a Autenticação integrada do Windows for utilizada, execute o browser do cliente para aceder à página ASP na mesma conta que a sessão de depuração do IDE do Visual Basic. Se a Autenticação básica for utilizada, introduza o nome de utilizador e a palavra-passe da mesma conta de utilizador na qual a sessão de depuração do IDE do Visual Basic está em execução.

    Nota A segunda medida assume que as "Permissões de Acesso Predefinidas" do COM não foram alteradas. Se as "Permissões de Acesso Predefinidas" nunca tiverem sido alteradas, o COM constrói uma ACL (access control list) que concede permissão à conta de Sistema e Identidade do Servidor. Neste cenário, a Identidade do Servidor é o utilizador com sessão iniciada que está a executar a sessão de depuração do IDE do Visual Basic. Se as "Permissões de Acesso Predefinidas" do DCOM tiverem sido alteradas, a segunda medida necessita que a conta de utilizador na qual a sessão de depuração do IDE do Visual Basic está a ser executada seja adicionada às "Permissões de Acesso Predefinidas". Isto pode ser efectuado utilizando DCOMCNFG. Para obter informações adicionais, consulte a hiperligação sobre segurança do COM na secção "Mais Informação".

Ponto Da Situação

Este comportamento ocorre por predefinição.

Mais Informação

Este comportamento não ocorre no Microsoft Windows NT 4.0 e IIS 4.0. Para obter informações adicionais sobre o erro ASP 0178 num computador baseado no Windows NT 4.0, clique no número de artigo existente abaixo para visualizar o artigo na Base de Dados de Conhecimento Microsoft:
198432 PRB: Server Object Error 'ASP 0178' Instantiating COM Object
Para obter informações adicionais sobre a segurança do COM, visite o seguinte Web site MSDN (Microsoft Developer Network):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/htm/security_0icz.asp

Propriedades

Artigo: 259725 - Última revisão: 28 de dezembro de 2007 - 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