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

查看代码后,我看到的仅有的两个潜在罪魁祸首是读的两条连续行:

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

如果请求为null,或者如果请求的当前ExecutionFilePath为null,则会抛出。我并不十分清楚何时(或何时)发生这种情况。我在这里吠叫错误的树吗? (此代码似乎在页面生命周期的负载部分运行)。

有帮助吗?

解决方案

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

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

(PDB和DLL必须匹配)

其他提示

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

奇怪的是,我已经在生产服务器上看到了无效的HTTPREQUEST错误(很多次),而无法找到原因。

我知道这对您无济于事,但只是出于团结而写下:)

我一半记得的一件潜在的事情是与IIS不映射到 /default.aspx。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top