我们在生产服务器中遇到了一个奇怪的错误。我们有一个堆栈跟踪,但没有行号,所以我知道错误的方法,但不是确切的行。它抱怨“对象引用没有设置为对象的实例”。有些东西是空的。
在查看代码之后,我能看到的唯一两个潜在的罪魁祸首是连续两行:
string currentPath = this.Request.CurrentExecutionFilePath;
string[] parts = currentPath.Split('/');
如果Request为null,或者如果Request的CurrentExecutionFilePath为null,则抛出。我不清楚这种情况何时发生(或者即使发生)。我在这里吠叫错了吗? (此代码似乎在页面生命周期的“加载”部分期间运行。)
答案 0 :(得分:3)
如果从第一个线程启动线程,请求和/或HttpContext可以为null。 (异步处理等)
答案 1 :(得分:2)
奇怪的是,我在生产服务器上看到了一个空的HttpRequest错误(很多次)而没有找到原因。
我知道这对你毫无用处,但我只是出于团结一致而写出来。)
我记得的一个潜在的事情是IIS没有将根映射到/Default.aspx,但是很久以前就这样了所以请不要过多关注这些潜在的无用的ramblings !!! / p>
答案 2 :(得分:2)
您是否为发布版本启用了PDB输出?
如果这样做,您只需要将pdb部署到生产服务器以获取堆栈跟踪中的行号。
(pdb和dlls必须匹配)