Condividi tramite


Debug di un'estensione di Active Directory

La finestra delle proprietà del servizio directory Microsoft Active Directory, il menu di scelta rapida e le estensioni della creazione guidata di oggetti documentate in questo argomento vengono implementate come server in-proc COM. Ovvero, ogni estensione è una DLL eseguita nel contesto del processo host. Per eseguire il debug dell'estensione, è necessario associare l'estensione a un'applicazione ed eseguire l'applicazione in un debugger.

Debug delle estensioni di Active Directory visualizzate nella shell di Windows

Le estensioni di Active Directory visualizzate nella shell di Windows vengono caricate nel contesto del processo di Explorer.exe. Queste estensioni possono essere sottoposto a debug come un'estensione della shell standard. Per altre informazioni sul debug delle estensioni della shell, vedere Debug con shell.

Debug delle estensioni di Active Directory visualizzate negli snap-in MMC di Active Directory

Le estensioni di Active Directory visualizzate negli snap-in MMC amministrativi di Active Directory vengono caricate nel contesto di Microsoft Management Console. Per eseguire il debug di un'estensione, individuare Mmc.exe nel sistema locale e impostare il debugger per usarlo come applicazione per il debug. Nella maggior parte dei sistemi, Mmc.exe si trova nella directory di sistema windows, ad esempio C:\WINNT\System32. A seconda del debugger, è possibile che sia necessario impostare o meno la DLL di estensione da caricare anche dal debugger. Molti debugger consentono anche di collegare il debugger a un processo MMC in esecuzione. Per altre informazioni, vedere la Guida dell'utente del debugger.

Può essere utile che MMC carichi automaticamente uno snap-in specifico. A tale scopo, impostare gli argomenti dell'applicazione sul percorso e sul nome file di un file MSC. Può trattarsi di un file MSC installato dal sistema o di uno creato. È possibile creare un file MSC seguendo questa procedura.

  1. Eseguire Mmc.exe.
  2. Caricare lo snap-in desiderato selezionando Aggiungi - /Rimuovi snap-in file nel menu MMC e selezionare lo snap-in desiderato.
  3. Salvare il file MSC selezionando File - Salva con nome nel menu MMC.

Se non si imposta un file MSC di avvio, è necessario caricare manualmente lo snap-in desiderato quando si esegue l'applicazione nel debugger.

Quando l'applicazione host viene eseguita nel debugger, il debugger potrebbe visualizzare un messaggio di avviso che informa che l'applicazione in esecuzione non contiene simboli di debug. È previsto e può essere ignorato in modo sicuro perché si sta effettivamente eseguendo il debug della DLL, non l'applicazione host.

Nella maggior parte dei casi, l'estensione non verrà chiamata finché l'utente non esegue un'azione che determina il caricamento e l'inizializzazione dell'estensione. Ad esempio, se si esegue il debug di un'estensione del menu di scelta rapida visualizzata per gli oggetti utente, l'estensione non verrà caricata fino alla prima visualizzazione del menu di scelta rapida per un oggetto utente.

A questo punto dovrebbe essere possibile impostare punti di interruzione e visualizzare l'output di debug. Se l'estensione non viene caricata, impostare un punto di interruzione nella funzione DllGetClassObject dell'estensione. Se DllGetClassObject non viene chiamato, l'estensione probabilmente non viene registrata correttamente.

Al termine del debug, uscire da MMC e il debugger dovrebbe scaricare normalmente.