【发布时间】:2012-02-27 18:23:09
【问题描述】:
我有一个使用 Nhibernate 和 Linq2SQL 的复杂服务器应用程序。 Linq2sql 代码每天大约 3 次生成“值不能为空”异常。一旦发生这种情况,代码将始终生成异常。诊断和解决根本原因将是漫长的,并且会引入不稳定因素。
当前的“修复”是每小时回收应用程序池。但是,从问题发生到回收发生,服务一直处于关闭状态。我希望 Web 服务捕获异常并回收它自己的应用程序池。我希望所有其他 Web 请求在完成之前都能得到尊重。
编辑:故障出在负载平衡网络场的两台服务器上。客户端不会因为这段代码崩溃而从一台服务器切换到另一台服务器。
【问题讨论】:
-
Diagnosis and solving the root cause will be lengthy and will introduce instability在 downvotealanche 之前。您应该将应用程序池配置为在短期内回收,并在长期内修复该错误。 -
最好的方法是修复错误
-
是的,完全正确。我是第一个同意一旦你放入创可贴,你就会习惯于忍受它的人。在这种情况下,旧代码被严重破坏,在我们可以安排故障分析时间之前,需要进行不涉及人工的工作,我知道这将涉及一些危险的重构。