如何确定一个模糊的c#错误引用的文件?

时间:2014-04-09 16:23:28

标签: c# asp.net .net webforms .net-assembly

错误

错误如下(仅略微混淆):

Could not load file or assembly 'Assembly.Name' or one of its dependencies. The system cannot find the file specified.

生成此错误的环境是我继承的asp.net webforms应用程序,以及"程序集"目前正在使用App_Code目录中的原始代码自动生成相关内容。

我尝试过什么

  1. 我已经验证了程序集 存在并且可以查找。 webforms应用程序中的大多数页面使用此特定程序集,并且它们工作正常,但是一个特定页面会引发错误。

  2. 我已经验证了有问题的程序集在using语句中正确声明,就像在其他(工作)页面中一样。

  3. 我已经检查了错误堆栈跟踪,这非常无用,完全由System.Web库调用组成。

    对于它的价值,堆栈跟踪以:

    开头
    Stack trace: at System.Web.UI.TemplateParser.ProcessException(Exception ex)
    
  4. 我已经开启了网页跟踪功能,但是在执行网页的过程中发生错误的过早发生错误。

  5. 我已检查错误消息,提及代码文件和行号,但都不存在。

  6. 问题

    是否有任何技巧可以找出"指定的文件"系统无法找到?组装相​​当大,我很惊讶系统不愿意具体告诉我哪个"指定"文件找不到!

1 个答案:

答案 0 :(得分:1)

  1. 您可以尝试按照此处的说明编辑注册表来启用Fusion日志:How to enable assembly bind failure logging (Fusion) in .NET

  2. 您可以尝试从SysInternals套件运行Process Monitor(在此处下载http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx),并在访问'Assembly.Name'后立即查看进程尝试加载的dll