0

我有一个用 C# 编写的 Web 服务。它在池回收期间表现得相当奇怪。

如果我配置一个包含 5 个工作进程的池,这些工作进程应该在 100 个请求后回收(在生产中它实际上是 10000 个,但没关系)。我得到了每个进程前 100 个(即 500 个请求)的正确响应,但之后一些请求返回了不正确的结果(我也得到了超时,但这没关系,因为进程正在回收)。

由于这些不正确的结果似乎发生在回收之后,因此在服务启动时,很难仅附加调试器并查看会发生什么(因为在回收发生时调试器已分离)。

所以我的问题是:
1.有没有人知道调试这种事情的好方法

编辑:2.碰巧知道可能出现什么问题的人(服务在请求之间没有状态信息)-我通过附加调试器并幸运地看到异常(在全局异常处理程序中捕获-上帝)发现了错误我讨厌那些):但是第一个问题仍然存在。有没有比附加调试器更简单的方法,希望你能及时看到错误。

4

2 回答 2

0

我最终要做的(目前)是删除大多数“半全局”try/catch/do-nothing 处理程序,然后编写一个 SoapExtension 来处理“未处理的异常”,并转储我能找到的所有信息走近一点。

我从 Jeff Atwood 关于 CodeProject 的文章中获得了大部分灵感:http: //www.codeproject.com/kb/aspnet/ASPNETExceptionHandling.aspx

它与附加调试器并不完全相同,但现在必须这样做。

于 2010-09-23T06:24:21.083 回答
0

你应该清楚什么是不正确的结果。如果不是 .NET 错误,您应该检查您的代码并在您自己的代码上添加一些应用程序级别的日志记录。

调试器只能在您没有其他可求助的情况下提供帮助。

于 2010-09-22T08:52:34.730 回答