Se avete scritto una DLL di estensione Server Internet, potrebbe essere interessato a ottenerlo in esecuzione sotto il debugger, quindi è possibile rintracciare sua esecuzione, impostare punti di interruzione o i valori delle variabili monitor dopo l'estensione viene chiamata. Alzarsi Microsoft Internet Information Server (IIS) e in esecuzione con la DLL nel debugger è un po ' complicata. Sarà necessario prima di trovare un server tranquillo dove è possibile eseguire il debug DLL in un ambiente controllato. Dopo aver trovato una risorsa, è possibile avviare la DLL di debug.
A causa delle differenze tra la versione 3.0 e 4.0 di IIS, è importante sapere quale versione si prevede di utilizzare per eseguire il debug DLL.
Attenersi alla procedura seguente per eseguire il debug un'estensione del Server Internet DLL utilizzando IIS 3.0:
-e W3Svc
Consigli di debug
IIS può essere eseguito come un'applicazione interattiva, rendendo molto più facile di debug. Per fare questo è necessario apportare alcune modifiche al vostro sistema. Per l'account utente che si sta per eseguire il server sotto, è necessario aggiungere alcuni privilegi.
Per aggiungere dei privilegi, eseguire User Manager. (Se stai usando Windows NT 3.51, eseguire MUSRMGR.EXE. Se stai usando Windows NT 4.0, eseguire USRMGR.EXE.) Fare clic su Diritti utente dal menu politiche . Selezionare la casella di controllo Visualizza diritti utente avanzato . Selezionare quindi atto come parte del sistema operativo dall'elenco a discesa sulla destra e aggiungere l'account utente.
Ripetere questo processo con Generazione di controlli di sicurezza (anche nell'elenco a discesa sulla destra). Assicurarsi che tutti i servizi di Internet (WWW, ftp e gopher) vengono fermati e INETINFO.EXE non è in esecuzione (utilizzare TLIST per controllare). Disconnettersi e riconnettersi. Si può quindi caricare l'IIS con la riga di comando:
Inetinfo. exe -e W3Svc
Per caricare IIS in un debugger (ad esempio, sotto WinDbg), utilizzare la seguente riga di comando:
WinDbg Inetinfo -e W3Svc
Siete pronti ad andare. In Visual C++, scegliere dal menu Build di Debug e quindi fare clic su Vai. Questa azione inizia il servizio pubblicazione sul WWW, e il debugger saranno a conoscenza dei simboli nella DLL. Si può ignorare l'avviso che il file non dispone di informazioni di debug.
Quando si chiude Visual C++, salvo per l'area di lavoro per INETINFO.EXE. In questo modo, è possibile evitare rientrando le impostazioni per la sessione di debug. Basta aprire il INETINFO.File di area di lavoro MDS quando si è pronti per ricominciare il debugger.
Dll nella cache
È possibile regolare l'impostazione del Registro di sistema in HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W3SVC/parametri/CacheExtensions per avere il server reinizializzi le dll ogni volta che vengono utilizzate. Se questa impostazione è 1, il server manterrà DLL caricate in memoria più a lungo possibile. Questa è l'impostazione predefinita per il server, dal momento che aiuta il server di ottenere il prestazioni delle massimo e dovrebbe essere modificato solo se si utilizza il server per il debug. Se si effettua l'impostazione 0, il server sempre ricaricherà le dll di estensione ogni volta che vengono utilizzate.
Costringendo il server per ricaricare la DLL è utile quando la DLL potrebbe essere schiantarsi o sconvolgendo tutti i dati per istanza che essa sostiene. Imponendo il server per reinizializzare la DLL, è possibile ottenere la DLL torna in uno stato prevedibile con il minimo sforzo. Assicurarsi di testare la DLL utilizzando l'impostazione CacheExtensions normale, tuttavia, non per assicurarsi che il codice nella DLL è completamente dipendente da quello stato iniziale.
Ci sono diversi modi per creare un ambiente per il debug vostri componenti server e le dll di estensione Internet Server quando si utilizza IIS 4.0 o versioni successive. Se si utilizza un debugger in grado di associare a un processo di Windows NT, è possibile utilizzare questa funzionalità per eseguire il debug il componente o l'estensione. Ad esempio, se si esegue il debug con Visual C++, prendere i seguenti passaggi:
Se il debugger che utilizzi non può connettersi a un processo di Windows NT, prendere i passaggi seguenti per stabilire un adeguato ambiente di debugging:
Debugger = lt; DebuggerExeName > dove DebuggerExeName è il percorso completo per il debug si utilizza.
Quando viene avviato il servizio pubblicazione sul World Wide Web, debugger anche sarà lanciato. È ora possibile impostare punti di interruzione appropriate la DLL di estensione Internet Server.
Non sarà in grado di impostare punti di interruzione nel codice sorgente di un componente, fino a quando il componente è stato caricato nella memoria. A tale scopo, avviare Internet Explorer e vista la.Pagina ASP che contiene l'oggetto. Non appena viene caricata la pagina, dovrebbe essere in grado di impostare punti di interruzione nel componente. Fare clic su Aggiorna per visualizzare la pagina ancora una volta e innescare i punti di interruzione che è stato selezionato. Se il componente non può essere caricato ancora una volta (per esempio, se l'errore si verifica nel codice di avvio del componente), è necessario caricare il componente DLL prima di iniziare la sessione di debug. (Vedi passo 11 qui sotto).
In alcuni casi, potrebbe non essere in grado di utilizzare una delle due procedure di cui sopra. Se avete difficoltà ad usare una di queste strategie, c'è un terzo approccio, che è stato descritto nelle versioni precedenti di IIS. Questo terzo approccio richiede la determinazione di privilegi di protezione di Windows NT nonché di apportare modifiche al Registro di sistema. Disattiverà anche la capacità di eseguire IIS come servizio. Questo approccio dovrebbe essere utilizzato solo se le precedenti due strategie hanno fallito.
{61738644-F196-11D0-9953-00C04FD919C1} / / WAMREG IIS admin Service
{9F0BD3A0-EC01-11D0-A6A0-00A0C922E752} / / estensione IIS Admin Crypto
{A9E69610-B80D-11D0-B9B9-00A0C922E750} / / servizio IISADMIN
La parola chiave LocalService possa essere trovata nelle sottochiavi supplementari di AppID.
C:\WINNT\System32\Inetsrv\Inetinfo.exe
w3svc -e
&Notanbsp; Dopo aver completato la sessione di debug, si devono invertire i passaggi da 5 a 1 per ripristinare le impostazioni precedenti e consentire di IIS per l'esecuzione come servizio.
&Note tecniche per numero |nbsp; Note tecniche per la categoria