Si vous avez écrit une DLL d'extension Internet Server, vous pourriez être intéressé à y parvenir en cours d'exécution sous le débogueur pour vous pouvez suivre son exécution, ensemble de points d'arrêt ou des valeurs de variable moniteur après que l'extension est appelée. Levez les Microsoft Internet Information Server (IIS) et en cours d'exécution avec votre DLL dans le débogueur sont un peu délicat. Vous devrez d'abord trouver un serveur tranquille où vous pouvez déboguer votre DLL en milieu contrôlé. Une fois que vous avez trouvé une telle ressource, vous pouvez démarrer le débogage de votre DLL.
En raison des différences entre les versions 3.0 et 4.0 d'IIS, il est important de savoir quelle version vous allez utiliser pour déboguer votre fichier DLL.
Suivez ces étapes pour déboguer une DLL à l'aide de IIS 3.0 d'extension Internet Server:
e - W3Svc
Conseils de débogage
IIS peut être exécuté comme une application interactive, rendant beaucoup plus facile de débogage. Pour ce faire, vous devez faire quelques modifications à votre système. Pour le compte d'utilisateur que vous allez exécuter le serveur sous, vous devez ajouter quelques privilèges.
Pour ajouter des privilèges, exécutez le gestionnaire des utilisateurs. (Si vous utilisez Windows NT 3.51, exécutez MUSRMGR.EXE. Si vous utilisez Windows NT 4.0, exécutez USRMGR.EXE.) Cliquez sur les Droits de l'utilisateur dans le menu de politiques . Activez la case à cocher Show Advanced User Rights . Puis sélectionnez la loi dans le cadre du système d'exploitation dans la liste déroulante sur la droite et ajouter le compte d'utilisateur.
Répétez cette procédure avec Générer des Audits de sécurité (également dans la liste déroulante sur la droite). Assurez-vous que tous les Services Internet (WWW, ftp et gopher) sont arrêtés et INETINFO.EXE ne s'exécute pas (utilisez TLIST pour vérifier). Déconnectez-vous et reconnectez-vous en. Vous pouvez ensuite charger IIS avec la ligne de commande:
INetInfo.Exe -e W3Svc
Pour charger IIS sous un débogueur (par exemple, dans le cadre de WinDbg), utilisez la ligne de commande:
WinDbg INetInfo.Exe -e W3Svc
Vous êtes prêt à aller. Dans Visual C++, pointez sur Déboguer dans le menu générer et puis cliquez sur Go. Cette action démarre le service de publication WWW, et le débogueur sera au courant des symboles dans votre DLL. Vous pouvez ignorer l'avertissement que le fichier n'a pas d'informations de débogage.
Lorsque vous fermez Visual C++, économiser de l'espace de travail pour INETINFO.EXE. De cette façon, vous pouvez éviter de réintégrer les paramètres pour la session de débogage. Ouvrez le INETINFO.Fichier d'espace de travail SDM lorsque vous êtes prêt à démarrer le débogueur à nouveau.
DLL en mémoire cache
Vous pouvez ajuster le paramètre de Registre à HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/W3SVC/paramètres/CacheExtensions pour que le serveur à réinitialiser les DLL chaque fois qu'ils sont utilisés. Si ce paramètre est 1, le serveur conservera les DLL chargées en mémoire aussi longtemps que possible. C'est le paramètre par défaut pour le serveur, car elle aide le serveur à obtenir des performances de pointe et ne doit être modifié que si vous utilisez le serveur pour le débogage. Si vous faites le paramètre 0, le serveur sera toujours recharger DLL d'extension chaque fois qu'ils sont utilisés.
Il est utile de forcer le serveur à recharger votre DLL lorsque votre DLL peut être s'écraser ou choquer les données de l'instance qu'elle entretient. En forçant le serveur à réinitialiser la DLL, vous pouvez obtenir votre DLL retour dans un État prévisible avec peu d'effort. Veillez à tester votre DLL en utilisant le paramètre CacheExtensions normal, cependant, pour s'assurer n'est code dans votre DLL pas entièrement dépendant de cet état initial.
Il y a plusieurs façons de créer un environnement pour déboguer vos composants serveur et les DLL d'extension Internet Server lorsque vous utilisez IIS 4.0 ou version ultérieure. Si vous utilisez un débogueur capable d'attacher à un processus Windows NT, vous pouvez utiliser cette fonctionnalité pour déboguer votre composant ou votre extension. Par exemple, si vous déboguez avec Visual C++, suivre les étapes suivantes:
Si le débogueur que vous utilisez ne peut pas attacher à un processus Windows NT, prendre les mesures suivantes pour établir un environnement de débogage approprié:
Débogueur = lt ; DebuggerExeName > où DebuggerExeName est le chemin complet du débogueur que vous utilisez.
Lorsque le Service de publication World Wide Web est démarré, votre débogueur sera également lancé. Vous pouvez maintenant définir des points d'arrêt appropriés dans votre DLL d'extension Internet Server.
Vous ne pourrez pas définir des points d'arrêt dans le code de la source d'un composant jusqu'à ce que le composant a été chargé en mémoire. Pour ce faire, démarrez Internet Explorer et le point de vue la.Page ASP contenant l'objet. Dès que la page est chargée, vous devriez être capable de définir des points d'arrêt dans votre composant. Cliquez sur actualiser pour afficher la page à nouveau et déclencher les points d'arrêt que vous avez sélectionnée. Si le composant ne peut pas être chargé encore une fois (par exemple, si la défaillance survient dans le code de démarrage du composant), vous devez charger le composant DLL avant de commencer la session de débogage. (Voir l'étape 11 ci-dessous).
Dans certains cas, vous ne peut-être pas en mesure d'utiliser ou l'autre des deux méthodes décrites ci-dessus. Si vous avez des difficultés à l'aide de ces stratégies, il y a une troisième approche, qui a été décrite dans les versions précédentes d'IIS. Cette troisième approche exige l'établissement de privilèges de sécurité Windows NT ainsi apporter des modifications au registre. Il désactivera également votre capacité d'exécuter IIS en tant que service. Cette approche ne doit être utilisée que si les deux stratégies précédentes ont échoué.
{61738644-F196-11D0-9953-00C04FD919C1} / / WAMREG IIS admin Service
{9F0BD3A0-EC01-11D0-A6A0-00A0C922E752} / / IIS Admin Crypto Extension
{A9E69610-B80D-11D0-B9B9-00A0C922E750} / / Service IISADMIN
Le mot clé LocalService peut-être être trouvé dans les sous-clés supplémentaires d'AppID.
C:\WINNT\System32\Inetsrv\Inetinfo.exe
e - w3svc
&Notenbsp ; Après avoir terminé la session de débogage, vous devez inverser les étapes 5 à 1 pour restaurer les paramètres précédents et permettre à IIS exécuter en tant que service.
&Notes techniques par le numéro |nbsp ; Notes techniques par catégorie