Errore quando si esegue il debug di un componente COM+ nell'IDE di Visual Basic con un client ASP

Traduzione articoli Traduzione articoli
Identificativo articolo: 259725 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando si esegue il debug di un componente Microsoft COM+ versione 1.0 in Visual Basic 6.0 su un computer basato su Microsoft Windows 2000, se il client Ŕ una pagina ASP (Active Server Pages) Ŕ possibile che nel browser venga visualizzato il seguente messaggio di errore:
Oggetto server, ASP 0178 (0x800A0005). Impossibile richiamare il metodo Server.CreateObject durante la verifica delle autorizzazioni. Impossibile accedere all'oggetto.
Quando si esegue il debug di un componente Microsoft COM+ versione 1.5 in Visual Basic 6.0 su un computer basato su Microsoft Windows XP, se il client Ŕ una pagina ASP (Active Server Pages) Ŕ possibile che nel browser venga visualizzato il seguente messaggio di errore:
Oggetto server, ASP 0178 (0x800A0005). Impossibile richiamare il metodo Server.CreateObject durante la verifica delle autorizzazioni. Impossibile accedere all'oggetto.
Questo comportamento si verifica solo quando si esegue il componente COM+ dall'ambiente di sviluppo integrato (IDE) di Visual Basic, mentre non si verifica eseguendo il componente COM+ in uno stato compilato all'interno di un'applicazione COM+.

Cause

L'utente che viene autenticato, solitamente l'account IUSR_<nomecomputer> se si utilizza l'accesso anonimo, non dispone delle autorizzazioni appropriate per accedere al server DCOM, in questo caso VB6.exe. Quando si esegue il debug di componenti COM+ nell'IDE di Visual Basic, l'utente che avvia l'operazione Ŕ l'utente interattivo, mentre l'utente che accede al server DCOM Ŕ l'utente che viene autenticato.

PoichÚ non esiste alcuna voce DCOM per VB6.exe, DCOM utilizza le autorizzazioni predefinite. Per impostazione predefinita, in Windows 2000 e Windows XP le autorizzazioni di accesso predefinite DCOM vengono fornite solo all'account di sistema e all'utente che avvia l'operazione. L'errore descritto nella sezione "Sintomi" si verifica perchÚ l'utente che avvia l'operazione e l'utente che accede al server DCOM non coincidono.

Risoluzione

Esistono due metodi per aggirare il problema:

Metodo 1

Aggiungere una voce DCOM per VB6.exe nel Registro di sistema. Questo consente di impostare autorizzazioni DCOM specifiche per il debug di componenti COM+ in Visual Basic.
  1. Creare la voce per Debug ASP VB in DCOM:
    1. Avviare il Blocco note di Microsoft o un altro editor di testo e digitare la sintassi riportata di seguito, facendo attenzione a maiuscole e minuscole:
      REGEDIT4
      [HKEY_CLASSES_ROOT\CLSID\{70F214BA-94E2-4bdf-8F30-32CB4A905E4D}]
      @="Debug ASP VB"
      [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. Salvare il file con nome Vbaspdbg.reg.
    3. Individuare la cartella in cui Ŕ stato salvato il file Vbaspdbg.reg e fare doppio clic sul file, che in tal modo verrÓ automaticamente registrato nel Registro di sistema.
  2. Aggiungere l'account Everyone alle autorizzazioni DCOM per Debug ASP VB.

    Windows 2000
    1. Avviare DCOMCNFG. Fare clic sul pulsante Start, scegliere Esegui, quindi digitare dcomcnfg nella finestra di dialogo.
    2. Nella pagina ProprietÓ - Configurazione Distributed COM fare clic sulla scheda Applicazioni, selezionare Debug ASP VB dall'elenco, quindi scegliere ProprietÓ.
    3. Nella finestra ProprietÓ - Debug ASP VB fare clic sulla scheda Protezione, quindi selezionare il pulsante di opzione Utilizza le autorizzazioni d'accesso personalizzate. Scegliere Modifica.
    4. Nella finestra Valore di Registro di sistema - Autorizzazioni fare clic su Aggiungi, quindi aggiungere l'account Everyone per Consenti accesso.
    5. Scegliere OK, quindi Applica per applicare le modifiche e uscire dalla pagina ProprietÓ - Configurazione Distributed COM.
    6. Riavviare il computer per rendere effettive le modifiche.
    Windows XP

    1. Avviare lo snap-in COM+. Fare clic sul pulsante Start, scegliere Strumenti amministrativi, quindi scegliere Servizi componenti.
    2. Fare clic per espandere Servizi componenti, Computer, Risorse del computer e infine Config DCOM.
    3. Fare clic con il pulsante destro del mouse su Debug ASP VB, quindi scegliere ProprietÓ.
    4. Nella scheda Protezione in Autorizzazioni di accesso selezionare Personalizzate, quindi scegliere Modifica.
    5. Nella finestra Autorizzazioni di accesso scegliere Aggiungi, quindi aggiungere l'account Everyone per l'opzione Consenti accesso.
    6. Scegliere OK, Applica, quindi di nuovo OK per applicare le modifiche e uscire dalla finestra delle proprietÓ di configurazione DCOM.
    7. Riavviare il computer per rendere effettive le modifiche.

Metodo 2

  1. Per ragioni di debug, configurare su "Alta (isolata)" la protezione dell'applicazione per la directory virtuale in cui risiede la pagina ASP. In questo modo la pagina ASP viene eseguita nel proprio processo, il che consente di modificare la protezione senza influire sul resto del sito Web.
    1. Avviare Gestione servizi Internet.
    2. Fare clic con il pulsante destro del mouse sulla directory virtuale in cui risiede la pagina ASP, quindi scegliere ProprietÓ.
    3. Fare clic sulla scheda Directory virtuale e selezionare Alta (isolata) nell'elenco a discesa Protezione applicazione.
    4. Scegliere Applica.
  2. Disabilitare l'accesso anonimo per questa directory virtuale e assicurarsi che sia selezionata l'opzione Autenticazione integrata di Windows o Autenticazione di base:
    1. Nella finestra di dialogo ProprietÓ della directory virtuale fare clic sulla scheda Protezione directory.
    2. Scegliere Modifica in Controllo autenticazione e accesso anonimo.
    3. Assicurarsi che la casella Accesso anonimo sia deselezionata.
    4. Fare clic su Autenticazione integrata di Windows oppure su Autenticazione di base.
  3. Se si utilizza l'autenticazione integrata di Windows, eseguire il browser del client per accedere alla pagina ASP con lo stesso account utente utilizzato durante la sessione di debug nell'IDE di Visual Basic. Se si utilizza l'autenticazione di base, specificare nome utente e password dello stesso account utente utilizzato durante la sessione di debug nell'IDE di Visual Basic.

    Nota Il secondo metodo presuppone che le autorizzazioni di accesso predefinite DCOM non siano state modificate. Se tali autorizzazioni non sono mai state modificate, verrÓ creato un elenco di controllo di accesso (ACL) che concederÓ le autorizzazioni all'account di sistema e all'identitÓ server. In questo scenario, l'identitÓ server Ŕ l'utente connesso che esegue la sessione di debug nell'IDE di Visual Basic. Se le autorizzazioni di accesso predefinite DCOM sono state modificate, la seconda soluzione richiede che l'account utente che esegue la sessione di debug nell'IDE di Visual Basic venga aggiunto alle autorizzazioni di accesso predefinite. Questa operazione pu˛ essere effettuata utilizzando DCOMCNFG. Per ulteriori informazioni, vedere il collegamento "Protezione COM" nella sezione "Informazioni".

Status

Si tratta di un comportamento legato alla progettazione del prodotto.

Informazioni

Questo comportamento non si verifica in Windows NT 4.0 e Internet Information Server (IIS) 4.0. Per ulteriori informazioni relative all'errore ASP 0178 in un computer basato su Windows NT 4.0, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
198432 PRB: Errore di oggetto server "ASP 0178" durante la creazione di istanze di un oggetto COM
Per ulteriori informazioni sulla protezione COM, visitare il seguente sito Web Microsoft Developer Network (informazioni in lingua inglese):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/com/htm/security_0icz.asp

ProprietÓ

Identificativo articolo: 259725 - Ultima modifica: venerdý 16 dicembre 2005 - Revisione: 4.1
Le informazioni in questo articolo si applicano a
  • Microsoft Active Server Pages 4.0áalle seguenti piattaforme
    • Microsoft Windows 2000 Standard Edition
    • Microsoft Windows XP Professional
  • Microsoft Visual Basic 6.0 Enterprise Edition
Chiavi:á
kbbug kbdebug kbprb kbvbp600 kbcomplus KB259725
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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