0

我正在与之合作的一个应用程序开发团队设计了一个通用日志记录应用程序,该应用程序将异常捕获到单个存储库 (msql2008r2) 以供以后查看。该团队希望将任何数据库异常路由到同一存储库。就目前而言,Web 应用程序使用 WCF 服务将消息写入存储库。在某些情况下,由于外键缺失/不正确的插入尝试等而失败的应用程序实际上会包含在应用程序的消息中,但是,在某些情况下,SQL 代理作业会执行与这些相关的存储过程不记录到存储库的应用程序。

我意识到我可以使用带有方法调用现有 WCF 服务的 CLR 客户端。我想我也可以在存储过程中调用另一个存储过程,将错误生成日志格式,然后直接写入存储库而不通过服务。无论如何,我对这个小组关于最佳方法的想法很感兴趣。

4

2 回答 2

1

您可以在 SQL Server 中使用 TRY 块来捕获大多数错误,并在 CATCH 块中调用存储过程来执行任何需要的日志记录。但是,您无法捕获编译时错误(例如由格式错误的全文查询引发的错误)。不可捕获的错误将需要由调用程序处理。

对于 SQL 代理作业,最好的办法是使用捕获和记录任何异常的 powershell 作业步骤。

于 2012-12-07T04:40:36.573 回答
0

如果有人关注此线程,我将通过服务代理查看 wcf 连接端点作为可能的解决方案。

于 2012-12-18T15:36:21.233 回答