ASP.NET HttpRequest可以为null吗? CurrentExecutionFilePath怎么样?

时间:2009-03-31 15:01:55

标签: asp.net null httprequest

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

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

string currentPath = this.Request.CurrentExecutionFilePath;
string[] parts = currentPath.Split('/');
如果Request为null,或者如果Request的CurrentExecutionFilePath为null,则抛出

。我不清楚这种情况何时发生(或者即使发生)。我在这里吠叫错了吗? (此代码似乎在页面生命周期的“加载”部分期间运行。)

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

奇怪的是,我在生产服务器上看到了一个空的HttpRequest错误(很多次)而没有找到原因。

我知道这对你毫无用处,但我只是出于团结一致而写出来。)

我记得的一个潜在的事情是IIS没有将根映射到/Default.aspx,但是很久以前就这样了所以请不要过多关注这些潜在的无用的ramblings !!! / p>

答案 2 :(得分:2)

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

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

(pdb和dlls必须匹配)