COMO: Utilizar o registo IEHost depurar .NET objecto anfitrião no Internet Explorer

Traduções de Artigos Traduções de Artigos
Artigo: 313892 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo descreve como activar o registo de erro expandidas para IEHost.dll, anfitrião (CLR) Common Language Run-time gerido que é executado no Internet Explorer.

O Microsoft .NET Framework SDK documentação descreve como utilizar Fuslogvw.exe para depurar problemas que poderão ocorrer quando hospedar um módulo .NET no Internet Explorer. "Fusão," a partir do qual este utilitário obtém o nome, é nova tecnologia de instalação de programa impacto de zero da Microsoft. Por conseguinte, Fuslogvw.exe comunica erros apenas de transferência da assemblagem ou as respectivas dependências.

Sobre IEHost.dll

Módulos de .NET são suportados no Internet Explorer utilizando dois componentes. O primeiro é um filtro MIME, que é definido de MSCOREE.dll, que monitoriza todos os fluxos de dados a receber com o tipo de MIME application/octet-stream quando o Internet Explorer efectua uma chamada ao método IMoniker BindToObject . O filtro examina a sequência de dados para os bits no cabeçalho de execução de portátil (PE) para determinar se é ou não é um módulo de gestão. Se não estiver, o filtro simplesmente devolve e permite que o Internet Explorer processar a sequência normalmente.

Se a sequência de um módulo .NET, o filtro carrega a assemblagem IEHost gerido e chamadas para o objecto de fábrica para criar uma instância do objecto pedido. Este objecto de fábrica, por sua vez, chama IEManager, um título gestor que configura a domínios de aplicação (AppDomains) para o Internet Explorer e utilize provas sobre a assemblagem (especialmente, os membros URL e zona) para determinar as permissões com a qual a assemblagem deveria ser carregada.

Erros na assemblagem carregar, permissões de segurança ou objecto de inicialização não são registados de fusão registo. Tal como acontece com controlos ActiveX, um objecto de .NET que não está inicializado normalmente falha silenciosamente, deixando uma pequena caixa grooved onde o controlo deve ser. Para ver estes erros, terá activa o registo de depuração IEHost.

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

Activar o ficheiro de registo IEHost Debug

aviso : a utilização incorrecta do Editor de registo poderá provocar problemas graves que poderão forçar a reinstalação do sistema operativo. Microsoft não garante que os problemas resultantes da utilização incorrecta do Editor de registo possam ser resolvidos. As suas próprias risco da utilização do Editor de registo.
  1. Clique em Iniciar , clique em Executar , escreva regedit e, em seguida, clique em OK .
  2. Localize e clique na seguinte chave de registo:
    HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework
  3. Adicionar um valor DWORD denominado DebugIEHost a esta chave; atribuir qualquer valor diferente de zero.
  4. Adicione um valor de cadeia denominado IEHostLogFile . Atribuir-lhe o caminho completo (incluindo o nome do ficheiro) do ficheiro no qual pretende gravar o rastreio de depuração (por exemplo, C:\Temp\IEDebug.log).

Informações contidas no ficheiro de registo de depuração

O ficheiro de registo é criado pelo IEHost contém entradas que são escritas por duas classes de .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
					
Estas informações identificam o URL utilizado por motivos de segurança, o nome da aplicação que está a ser iniciada, a base de código é utilizada para transferir as dependências e as licenças que se aplicam a este objecto (entre outras informações úteis).

As informações mais úteis são um rastreio de pilha, que é guardado no ficheiro de registo se ocorrer um erro durante a criação de objectos. Por exemplo, suponha que tentou escrever para uma pasta no 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 tiver êxito, mas uma vez que o objecto com não foi totalmente sited no Internet Explorer ainda, falha silenciosamente. No entanto, num rastreamento verboso é escrito o ficheiro de registo. Verá normalmente dois rastreios: uma excepção interna (que é accionada pelo seu controlo) e uma excepção de servidor (o erro que é accionada pelo tempo execução em resposta a falha do controlo). 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 segurança excepções, recebe também detalhes sobre o qual o pedido 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 Web MSDN:
Debugging with the Microsoft .NET Framework SDK

Propriedades

Artigo: 313892 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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