3

我们在生产服务器中遇到了一个奇怪的错误。我们有一个堆栈跟踪,但没有行号,所以我知道错误所在的方法,但不知道确切的行。它抱怨“对象引用未设置为对象的实例”。有些东西是空的。

查看代码后,我能看到的唯一两个潜在罪魁祸首是连续两行:

string currentPath = this.Request.CurrentExecutionFilePath;
string[] parts = currentPath.Split('/');

如果 Request 为 null,或者 Request 的 CurrentExecutionFilePath 为 null,则会抛出。我不太清楚何时(或什至)会发生这种情况。我在这里吠错树了吗?(此代码似乎在页面生命周期的加载部分运行)。

4

3 回答 3

3

如果您从第一个线程启动线程,则请求和/或 HttpContext 可以为空。(异步处理等)

于 2009-03-31T15:56:11.337 回答
2

奇怪的是,我在生产服务器上多次看到 null HttpRequest 错误,但始终无法找出原因。

我知道这对你没有任何用处,但我只是出于团结而写作:)

我记得一半的潜在事情是与 IIS 不将根映射到 /Default.aspx 相关,但同样,这都是很久以前的事了,所以请不要太注意这些潜在的无用的杂谈!!!

于 2009-03-31T15:15:17.817 回答
2

您是否为发布版本启用了 PDB 输出?

如果这样做,您只需将 pdb 部署到生产服务器即可在堆栈跟踪中获取行号。

(pdb 和 dll 必须匹配)

于 2009-03-31T15:15:53.507 回答