Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 我应该如何从存储过程到通用日志接口进行错误管理_Sql Server_Wcf_Logging_Clr - Fatal编程技术网

Sql server 我应该如何从存储过程到通用日志接口进行错误管理

Sql server 我应该如何从存储过程到通用日志接口进行错误管理,sql-server,wcf,logging,clr,Sql Server,Wcf,Logging,Clr,与我一起工作的一个应用程序开发团队设计了一个通用日志记录应用程序,该应用程序可以捕获单个存储库(msql2008r2)的异常,以供以后审查。该团队希望将任何数据库异常路由到同一存储库。目前,web应用程序使用WCF服务将消息写入存储库。在某些情况下,由于缺少/不正确外键的插入尝试等原因而失败的应用程序实际上会包含在应用程序的消息中,但是,在某些情况下,SQL代理作业会执行与这些应用程序相关的存储过程,而这些存储过程不会记录到存储库中 我意识到我可以使用CLR客户机来调用现有的WCF服务。我想我也

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


我意识到我可以使用CLR客户机来调用现有的WCF服务。我想我也可以调用存储过程中的另一个存储过程,该存储过程将错误一般化为日志格式,然后直接写入存储库而不通过服务。在任何情况下,我都对这个小组关于最佳方法的想法感兴趣。

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


对于SQL代理作业,最好使用powershell作业步骤捕获并记录任何异常

如果有人关注此线程,我将通过ServiceBroker寻找wcf连接端点作为可能的解决方案。

没有想法吗?这组人真奇怪!:)最后,使用ServiceBroker和ExternalActivator对流程进行管理。