Cómo: Utilizar el registro de IEHost para depurar objetos de .NET alojar en Internet Explorer

Seleccione idioma Seleccione idioma
Id. de artículo: 313892 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se describe cómo activar el registro de error extendido para IEHost.dll, el host Common Language Run-time (CLR) administrado se ejecuta dentro de Internet Explorer.

.NET Framework SDK documentación describe cómo utilizar Fuslogvw.exe para depurar problemas que pueden producirse cuando se host un módulo de .NET en Internet Explorer. "Fusión," desde la que esta utilidad toma su nombre, es nueva tecnología de instalación de impacto cero programa de Microsoft. Por lo tanto, Fuslogvw.exe informa de errores sólo en descargar el ensamblado o sus dependencias.

Acerca de IEHost.dll

Los módulos .NET se admiten en Internet Explorer utilizando dos componentes. El primero es un filtro MIME, que se define en Mscoree.dll, que supervisa todas las secuencias de datos entrantes con el tipo MIME application/octet-stream cuando Internet Explorer realiza una llamada al método IMoniker BindToObject . El filtro examina la secuencia de datos para los bits en el encabezado ejecutable portable (PE) para determinar si es un módulo administrado. Si no lo está, el filtro simplemente devuelve y permite que Internet Explorer para procesar la secuencia normalmente.

Si la secuencia es un módulo. NET, el filtro carga el ensamblado IEHost administrado y llama a su objeto de fábrica para crear una instancia del objeto solicitado. Este objeto de fábrica, vez, llama a IEManager, una seguridad un administrador que configura los dominios de aplicación (AppDomain) para Internet Explorer y utiliza evidencia sobre el ensamblado (en concreto, la pertenencia de dirección URL y zona) para determinar los permisos con el que se debe cargar el ensamblado.

Errores de carga de ensamblados, permisos de seguridad o la inicialización del objeto no se registran en la fusión registro. Como ocurre con controles ActiveX, un objeto .NET que no se ha inicializado normalmente error silenciosamente, dejando un cuadro pequeño, estriado donde debería estar el control. Para ver estos errores, tiene que activa el registro de depuración IEHost.

Para obtener información adicional acerca de MIME filtros, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
260840EJEMPLO: MIMEfilt muestra filtro MIME para Internet Explorer

Activar el archivo de registro de depuración IEHost

Advertencia : si utiliza incorrectamente el Editor del registro, pueden surgir problemas graves que conlleven la reinstalación del sistema operativo. Microsoft no garantiza que pueda solucionar los problemas resultantes del uso incorrecto del Editor del Registro. Utilice el Editor del Registro bajo su responsabilidad.
  1. Haga clic en Inicio , haga clic en Ejecutar , escriba regedit y, a continuación, haga clic en Aceptar .
  2. Busque y haga clic en la siguiente clave del registro:
    HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework
  3. Agregar un valor DWORD denominado DebugIEHost a esta clave; asignarle cualquier valor distinto de cero.
  4. Agregue un valor de cadena denominado IEHostLogFile . Asigna la ruta de acceso completa (incluido el nombre de archivo) del archivo en que desea registrar la traza de depuración (por ejemplo, C:\Temp\IEDebug.log).

Información contenida en el archivo de registro de depuración

El archivo de registro creado por IEHost contiene entradas escritas por dos clases de .NET diferentes: Microsoft.IE.Manager y Microsoft.IE.SecureFactory . Por ejemplo:
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
					
Esta información identifica la dirección de URL que se utiliza por motivos de seguridad, el nombre de la aplicación se inicia, la base de código se utiliza para descargar las dependencias y las licencias que se aplican a este objeto (entre otra información útil).

La información más útil es un seguimiento de pila, que se graba en el archivo de registro si se produce un error durante la creación de objetos. Por ejemplo, suponga que ha intentado escribir en una carpeta en su constructor de clase:
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");
}
				
esta operación no se realiza correctamente, pero debido a que el objeto ha no ha totalmente ubicado en Internet Explorer aún, no silenciosamente. Sin embargo, se escribe un seguimiento de pila detallado en el archivo de registro. Normalmente verá dos seguimientos de pila: excepción interna (que se inicia el control) y una excepción de servidor (el error que se produce por el tiempo de ejecución en respuesta a un error del control). Por ejemplo:
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)
   ...
					
Para las excepciones de seguridad, también recibirá detalles sobre qué error solicitud de permiso de seguridad:
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"/>
					

Referencias

Para obtener información más acerca de depuración con .NET Framework SDK, visite el siguiente sitio Web de MSDN:
Debugging with the Microsoft .NET Framework SDK

Propiedades

Id. de artículo: 313892 - Última revisión: sábado, 24 de enero de 2004 - Versión: 5.1
La información de este artículo se refiere a:
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer (Programming) 6.0
Palabras clave: 
kbmt kbctrl kbmisctools kbdebug kbhowtomaster KB313892 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 313892

Enviar comentarios

 

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