Comment faire pour utiliser le journal IEHost pour déboguer les objets .NET d'hébergement dans Internet Explorer

Traductions disponibles Traductions disponibles
Numéro d'article: 313892 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article explique comment activer l'enregistrement d'erreur étendues pour IEHost.dll, le ordinateur hôte Common Language Run-time (CLR) géré qui s'exécute dans Internet Explorer.

Le kit de développement Microsoft .NET Framework SDK documentation décrit comment utiliser Fuslogvw.exe pour déboguer les problèmes qui peuvent se produire lorsque vous ordinateur hôte un module de .NET dans Internet Explorer. "Fusion, » à partir de laquelle cet utilitaire prend son nom, est nouvelle technologie d'installation de programme à impact nul de Microsoft. Par conséquent, Fuslogvw.exe signale les erreurs uniquement en téléchargement l'assemblage ou ses dépendances.

À propos de IEHost.dll

Modules .NET sont pris en charge dans Internet Explorer par à l'aide de deux composants. Le premier est un filtre MIME, qui est défini dans mscoree.dll, qui surveille tous les flux de données entrant avec le type MIME application/octet-flux lorsque Internet Explorer effectue un appel à la méthode IMoniker BindToObject . Le filtre examine le flux de données pour les octets dans l'en-tête de fichier exécutable portable (PE, Portable EXECUTABLE) pour déterminer ou non il est un module géré. Si ce n'est pas le cas, le filtre simplement renvoie et permet à Internet Explorer traiter le flux de données en général.

Si le flux est un module de .NET, le filtre charge l'assembly IEHost gérée et appelle dans son objet fabrique pour créer une instance de l'objet demandé. Cet objet fabrique, appelle à son tour, IEManager, une sécurité Gestionnaire qui configure les domaines d'application (AppDomain) pour Internet Explorer et preuves utilise sur l'assembly (en particulier, l'abonnement URL et la zone) pour déterminer les autorisations avec lequel l'assembly doit être chargé.

Erreurs d'assembly charger, autorisations de sécurité ou objet d'initialisation ne sont pas enregistrées dans la fusion journal. Comme avec les contrôles ActiveX, un objet .NET qui n'est pas initialisé généralement échoue en silence, quitter une boîte de petite, grooved où le contrôle doit être. Pour voir ces erreurs, vous devez active le journal de débogage IEHost.

Pour plus d'informations sur MIME filtre, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
260840 SAMPLE : MIMEfilt démontre filtre MIME pour Internet Explorer

Activer le fichier journal IEHost débogage

Avertissement : Si vous utilisez l'Éditeur du Registre de façon incorrecte, vous pouvez générer des graves problèmes pouvant vous obliger à réinstaller votre système d'exploitation. Microsoft ne peut pas garantit que vous pouvez résoudre les problèmes résultant de l'utilisation incorrecte de l'Éditeur du Registre. Utilisez l'Éditeur du Registre à vos risques et périls.
  1. Cliquez sur Démarrer , cliquez sur Exécuter , tapez regedit et cliquez sur OK .
  2. Recherchez et cliquez la clé de Registre suivante :
    HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework
  3. Ajouter une valeur DWORD nommée DebugIEHost à cette clé ; affecter toute valeur non nulle.
  4. Ajoutez une valeur de chaîne nommée IEHostLogFile . Affecter le chemin le complet (y compris le nom du fichier) d'accès au fichier dans lequel vous souhaitez enregistrer le suivi de débogage (par exemple, C:\Temp\IEDebug.log).

Les informations contenues dans le fichier journal de débogage

Le fichier journal créé par IEHost contient des écritures qui sont écrits par les deux classes .NET différentes : Microsoft.IE.Manager et Microsoft.IE.SecureFactory . Par exemple :
Creating security manager

Microsoft.IE.Manager: Microsoft.IE.Manager: unique id lgth = 28
Microsoft.IE.SecureFactory: Create SecureFactory() with security 
information
Microsoft.IE.Manager: Created secure factory
Microsoft.IE.SecureFactory: Creating instance of the object in the correct 
domain
Microsoft.IE.SecureFactory: pUrl = http://servername/DebugIEHost/DebugIEHost/test.htm
Microsoft.IE.SecureFactory: id = 86474707A316B616E65610000000
Microsoft.IE.SecureFactory: link = 
Microsoft.IE.SecureFactory: licenses = 
Microsoft.IE.Manager: Url = 
http://servername/DebugIEHost/DebugIEHost/test.htm
Microsoft.IE.Manager: UrlGetPartW returned 0
Microsoft.IE.Manager: CodeBase = http://servername
Microsoft.IE.Manager: Application = DebugIEHost/DebugIEHost
					
Ces informations identifiant l'URL qui est utilisée pour des raisons de sécurité, le nom de l'application est en cours de démarrage, la base de code est utilisée pour télécharger les dépendances et les licences qui s'appliquent à cet objet (entre autres informations utiles).

Les informations plus utiles sont une trace de pile est enregistrée dans le fichier journal si une erreur se produit lors de la création d'objet. Par exemple, supposons que vous tentiez d'écrire dans un dossier dans le constructeur de classe :
public DebugIEHost() {
    // This call is required by the Windows.Forms Form Designer.
    InitializeComponent();

    // TODO: Add any initialization after the InitForm call
    FileStream fs = File.Open(@"C:\temp.tmp",System.IO.FileMode.CreateNew);
    StreamWriter sw = new System.IO.StreamWriter(fs);
    sw.WriteLine("Hello, world");
}
				
cette opération n'aboutit pas, mais parce que l'objet n'a pas été entièrement sited dans Internet Explorer encore, elle échoue en silence. Toutefois, une trace de pile détaillé est écrit dans le fichier journal. Vous ne voyez souvent deux traces de pile : une exception interne (qui est générée par le contrôle) et une exception de serveur (l'erreur est générée par l'exécution en réponse à erreur votre contrôle). Par exemple :
Microsoft.IE.SecureFactory: System.Reflection.TargetInvocationException:
Exception has been thrown by the target of an invocation.---->
System.Security.SecurityException: Request for the permission of 
type System.Security.Permissions.FileIOPermission, mscorlib, 
Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 
failed.
   at System.Security.CodeAccessSecurityEngine.CheckHelper(PermissionSet 
grantedSet, PermissionSet deniedSet, CodeAccessPermission demand, 
PermissionToken permToken)
   ...
					
Pour les exceptions de sécurité, vous recevrez les informations sur les demande d'autorisation de sécurité a échoué :
The state of the failed permission was: 
<IPermission class="System.Security.Permissions.FileIOPermission, 
mscorlib, Version=1.0.3300.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089"
             version="1"
             Read="C:\temp.tmp"
             Write="C:\temp.tmp"/>
					

Références

Pour plus d'informations sur le débogage avec le .NET Framework SDK, le site suivant Web de MSDN :
Debugging with the Microsoft .NET Framework SDK

Propriétés

Numéro d'article: 313892 - Dernière mise à jour: samedi 24 janvier 2004 - Version: 5.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer (Programming) 6.0
Mots-clés : 
kbmt kbctrl kbmisctools kbdebug kbhowtomaster KB313892 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 313892
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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