追踪 IIS 中运行的 Web 服务故障的原因

追踪 IIS 中运行的 Web 服务故障的原因

我已经在 Visual Studio 2008 中构建了一个 Web 服务,并将其部署在运行于 Windows Server 2008 R2 的 IIS 7 上。

它已经经过了广泛的测试,可以正常处理所有错误并使用 log4net 将任何未捕获的错误记录到文件中。

系统通常运行完美,但偶尔(每天 2 或 3 次)会出现故障并破坏应用程序,需要iisreset让其再次运行。

当故障发生时,我会收到一些随机错误,这些错误被我的捕获全部错误日志捕获,例如:

  • 值不能为空。
  • 无法从“System.Boolean”类型转换为“System.DateTime”类型。
  • 序列不包含任何元素

在我手动执行之前,每次请求时都会引发这些错误iisreset,但在系统正常运行时看不到这些错误。

Web 服务是无状态的请求-响应应用程序。会话中不存储任何内容。这可能与负载有关,但我对此表示怀疑,因为每分钟只有大约 30 或 40 个请求。

事实证明,这个问题很难追踪。我搞不清楚是什么让 IIS 陷入这种糟糕的状态,以及为什么需要修复iisreset才能让它重新工作。事件日志中没有报告任何内容。

有人可以建议如何启用更广泛的日志记录以捕获此故障吗?

此外,有人知道可能导致该问题的原因是什么吗?

答案1

我已经自己修复了这个问题。这确实是应用程序的一个错误。

如果您遇到同样的问题,请参阅如何解决此问题的完整说明我在 StackOverflow 上对应的问题和答案

相关内容