IE7とIEHostLog

仕事で.NET C#で書いたクラスをIE上でロード、アクティブ化してビヘイビア(script behavior)から制御している。IE上でActiveXコントロールをロードするのと同じことを.NETカスタムコントロールで行っている訳だ。

こいつをロードする際のデバッグを行うため等.NET CLRをホストしているIEHost.dllのデバッグログを採取する場合、IE6.xでは以下のようにレジストリ"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework"にエントリを追加してやれば良かったのだが

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
"DebugIEHost"=dword:00000001
"IEHostLogFile"="C:\\Temp\\IEDebug.log"

IE7で同様の設定を行ってもログが採取できないようだ。

Fusionのログにはアセンブリの読み込み、セキュリティのアクセス許可、またはオブジェクトの初期化におけるエラーは記録されないので、この方法でデバッグログを有効にしておかないと、ActiveX コントロールの場合と同様、初期化されていない .NET オブジェクトのエラーが判別できないのだ。
きっと他に方法があるはずだが、もしできないとなると深刻な問題だ。

追記: IE7でも従来通りIEHostのデバッグログを採取できることを確認した。レジストリの値を変更しても、反映されるのに一定の時間が掛かっていたので無効だと思い込んでいただけだ。