我开发了一个WCF服务来为我们的客户提供服务并在IIS上托管它。我们要求将收到的所有请求和从WCF发送的响应记录到数据库中。
但是,由于这种日志记录,我们不希望中断主要的请求和响应流。因此,我们使用线程(Threading.Thread
和Thread.IsBackground = true
)来调用过程来插入/记录对数据库的请求和响应。
我只想知道在WCF服务上实现/调用线程是否存在问题。如果是这样,那将是一个很好的解决方案?
答案 0 :(得分:1)
是的,可能有问题。 IIS中的应用程序池可以被回收,这意味着后台线程将被杀死,即使它正处于某些处理过程中。
实际上,只有在更新应用程序时才会出现问题(因为当应用程序池因空闲超时而停止时应该完成记录器)。
因此,如果您在更新期间可以使用丢失的日志条目,那么您就没有问题。