COMO: Utilizar o log de IEHost para depurar o objeto .NET hospedagem no Internet Explorer

Traduções deste artigo Traduções deste artigo
ID do artigo: 313892 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve como ativar o log de erro estendidas para IEHost.dll, o host de linguagem comum tempo de execução (CLR) gerenciado que executa dentro do Internet Explorer.

O Microsoft .NET Framework SDK documentação descreve como usar Fuslogvw.exe para depurar problemas que podem ocorrer ao hospedar um módulo do .NET no Internet Explorer. "Fusão", do qual esse utilitário obtém seu nome, é nova tecnologia de instalação de programa impacto a zero da Microsoft. Portanto, Fuslogvw.exe relata erros apenas no download o assembly ou suas dependências.

Sobre IEHost.dll

Módulos do .NET que são suportados no Internet Explorer, usando dois componentes. A primeira é um filtro MIME, que é definido em mscoree.dll, que monitora todos os fluxos de dados entrada com o tipo de MIME application/octet-stream quando o Internet Explorer faz uma chamada para o método IMoniker BindToObject . O filtro examina o fluxo de dados para os bits no cabeçalho do executável portátil (PE) para determinar se ou não é um módulo gerenciado. Se não estiver, o filtro simplesmente retorna e permite que o Internet Explorer para processar o fluxo normalmente.

Se o fluxo é um módulo de .NET, o filtro carrega o assembly IEHost gerenciado e chama seu objeto de fábrica para criar uma instância do objeto solicitado. Este objeto de fábrica, por sua vez, chama IEManager, uma segurança Gerenciador que configura a domínios de aplicativo (AppDomains) para o Internet Explorer e o usa evidências sobre o assembly (particularmente, a associação URL e zona) para determinar as permissões com o qual o assembly deve ser carregado.

Erros no carregamento de assembly, permissões de segurança ou inicialização de objeto não são registrados no Fusion log. Como com controles ActiveX, um objeto .NET que não está inicializado normalmente falha silenciosamente, deixando uma caixa pequena, grooved onde o controle deve ser. Para ver esses erros, você precisará ativa o log de depuração IEHost.

Para obter informações adicionais sobre MIME filtros, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
260840EXEMPLO: MIMEfilt demonstra filtro MIME para o Internet Explorer

Ativar o arquivo de log IEHost Debug

Aviso : se você usar o Editor do Registro incorretamente, poderá causar problemas sérios que talvez exijam a reinstalação do sistema operacional. A Microsoft não garante que você pode resolver problemas resultantes do uso incorreto do Editor do Registro. Use o Editor do registro por sua própria conta e risco.
  1. Clique em Iniciar , clique em Executar , digite regedit e, em seguida, clique em OK .
  2. Localize e clique na seguinte chave do Registro:
    HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework
  3. Adicione um valor DWORD chamado DebugIEHost a essa chave; atribuir a ele qualquer valor diferente de zero.
  4. Adicione um valor de seqüência de caracteres chamado IEHostLogFile . Atribua a ela o caminho completo (inclusive o nome do arquivo) do arquivo no qual você deseja gravar o rastreamento de depuração (por exemplo, C:\Temp\IEDebug.log).

Informações no arquivo de log de depuração

O arquivo de log é criado pelo IEHost contém entradas que são escritas por duas classes .NET diferentes: Microsoft.IE.Manager e Microsoft.IE.SecureFactory . Por exemplo:
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
					
Essas informações identificam a URL que é usada para fins de segurança, o nome do aplicativo que está sendo iniciado, a base de código é usada para baixar as dependências e as licenças que se aplicam a este objeto (entre outras informações úteis).

As informações mais úteis são um rastreamento de pilha, que é registrado no arquivo log se ocorrer um erro durante a criação do objeto. Por exemplo, suponha que você tentou gravar em uma pasta no seu construtor 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");
}
				
esta operação não terá êxito, mas porque o objeto tem não foi totalmente localizado no Internet Explorer ainda, ele falhará silenciosamente. No entanto, um rastreamento de pilha detalhada é gravado o arquivo de log. Você normalmente verá dois rastreamentos de pilha: uma exceção interna (que é lançada por seu controle) e uma exceção de servidor (o erro que é lançada pelo tempo de execução em resposta a uma falha do controle). Por exemplo:
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 exceções de segurança, você também recebe detalhes sobre o qual solicitação de permissão de segurança falhou:
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"/>
					

Referências

Para obter mais informações sobre depuração com o .NET Framework SDK, visite o seguinte site da MSDN:
Debugging with the Microsoft .NET Framework SDK

Propriedades

ID do artigo: 313892 - Última revisão: sábado, 24 de janeiro de 2004 - Revisão: 5.1
A informação contida neste artigo aplica-se a:
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer (Programming) 6.0
Palavras-chave: 
kbmt kbctrl kbmisctools kbdebug kbhowtomaster KB313892 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 313892

Submeter comentários

 

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