0

我在调试我们网站中遇到的问题之一时遇到了麻烦。这就是问题。我有一个网页,其中包含员工的照片和与员工相关的信息。当用户登录我们的网站时,我们会在会话中存储员工的详细信息。我正在为员工照片设置图片网址,如下所示。

imgEEPhoto.ImageUrl = imgPhoto.aspx?Company=XXXX&Empno=YYYY. 

在页面 imgPhoto.aspx 中,我正在检查该用户的会话是否处于活动状态。当我登录到有员工照片的页面时,有时照片不会显示。这是因为我正在检查 imgPhoto.aspx 页面中的会话是否处于活动状态。有时会话是活动的,有时会话是不活动的。看起来有一些函数将会话异步设置为空。我不知道如何跟踪该功能。所以我在想,在 imgPhoto.aspx 页面中,如果我可以获得到目前为止已执行的所有函数的列表,我可以跟踪正在重置会话的函数。有没有办法找到这个?

如果没有其他方法可以调试此问题,请告诉我。

编辑:

页面 imgPhoto.aspx 获取 company 和 empno 作为查询字符串参数。然后页面根据 company 和 empno 获取二进制数据,并使用 Response.BinaryWrite() 显示照片。会话检查位于此函数的开头。所以在调用这个函数之前的某个地方,在主页中的所有函数结束之后,会话就会超时。实际上我不确定它是否超时,因为我可以打印 sessionid。但我无法访问存储在会话中的变量。

如果我在函数内部打印调用堆栈,它会给出在该页面内执行的函数列表。它没有给出在该函数之前执行的所有函数。

4

3 回答 3

0

.NET 中没有内置工具来列出所有调用的函数,尽管您可以在特定点打印调用堆栈(就像异常一样)。

如果这是您想要采取的路线,我建议您寻找代码覆盖率分析器。

于 2009-01-27T17:12:46.697 回答
0

如果我理解这个问题,imgphoto.aspx 正在构建一个包含 url 的字符串,然后将其发回,对吗?如果是这样,如果您修改了 imgPhoto.aspx 以始终返回您知道肯定存在的图像的硬编码 URL,您还有问题吗?

我想首先排除您不是无意中发回了格式错误的 url 或不存在的照片的 url。我先试试这个,不检查会话,如果你不能重现问题(即总是有效),然后添加会话检查并仍然发回一个静态 url,看看问题是否可以通过这种方式复制.

我总是首先尝试排除“简单”的事情——也许你已经这样做了?

于 2009-01-27T17:25:13.473 回答
0

听起来好像您的问题是间歇性的,也许您的会话状态正在超时?您可以在 Gloabal.asax 文件的 Session_End 方法中记录会话何时结束,以准确了解会话何时终止。您可以尝试增加会话超时(默认为 20 分钟)分辨率,如下所示:

Timeout 属性可以在 Web.config 文件中设置

<SessionState timeout = "30" />

或者,您可以使用应用程序代码直接设置 Timeout 属性值

Session.Timeout = 30
于 2009-01-27T17:38:15.197 回答