ASP.NET HTTPREQUEST可以是零的吗? Current ExecutionFilePath怎么样?
-
22-08-2019 - |
题
我们在生产服务器中遇到了一个奇怪的错误。我们有一个堆栈跟踪,但没有行号,所以我知道该错误在哪里,但不是确切的行。它抱怨“对象引用未设置为对象的实例”。事物是无效的。
查看代码后,我看到的仅有的两个潜在罪魁祸首是读的两条连续行:
string currentPath = this.Request.CurrentExecutionFilePath;
string[] parts = currentPath.Split('/');
如果请求为null,或者如果请求的当前ExecutionFilePath为null,则会抛出。我并不十分清楚何时(或何时)发生这种情况。我在这里吠叫错误的树吗? (此代码似乎在页面生命周期的负载部分运行)。
解决方案
您是否启用了发布版本的PDB输出?
如果您这样做,您只需要将PDB部署到生产服务器即可在堆栈跟踪中获取行号。
(PDB和DLL必须匹配)
其他提示
如果您从第一个线程启动线程,请求和/或httpcontext可以为null。 (异步处理等)
奇怪的是,我已经在生产服务器上看到了无效的HTTPREQUEST错误(很多次),而无法找到原因。
我知道这对您无济于事,但只是出于团结而写下:)
我一半记得的一件潜在的事情是与IIS不映射到 /default.aspx。
不隶属于 StackOverflow