《Advanced .NET Debugging》 读书笔记 Listing 4-4: 调试Assembly加载失败的程序

image

程序在执行RunInDedicated()方法时会失败,原因在于执行h.Unwrap()时需要读取EntityUtil定义的程序集,但是CreateDomain()方法创建domain的时候指定的ApplicationBase为C:\\Windows\\system32。

1. 在WinDbg里载入AppDomain.exe.

2. 揿2执行RunInDedicated()方法时,出错。

3. 执行 .loadby sos.dll mscorwks

4. 执行 kb

5. 此时可以看到mscorwks抛出的异常:

image

6. 执行 !PE 023886d8

image

7. 但是此时不知道究竟在什么路径下缺失了什么assembly,此时可以启用fuslogvw,其位置在c:\Program Files(x86)\Microsoft.NET\SDK\v2.0\Bin ,进行设置。

image

8. 在注册表内添加相应键值LogFailures = 1

image

9. 此时重现错误,就是可找到AppDomain是在哪一个路径下没找到相应的Assembly的:

image

posted on 2010-12-29 23:19  李志鹏  阅读(279)  评论(0)    收藏  举报

导航