From 730507d099e25d2e002e1ea75f29bbd21a546569 Mon Sep 17 00:00:00 2001 From: yangxiaodong Date: Mon, 14 Aug 2017 18:28:24 +0800 Subject: [PATCH] fixed issue #25. --- .../Abstractions/CapPublisherBase.cs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/DotNetCore.CAP/Abstractions/CapPublisherBase.cs b/src/DotNetCore.CAP/Abstractions/CapPublisherBase.cs index 257f881..93f0b6c 100644 --- a/src/DotNetCore.CAP/Abstractions/CapPublisherBase.cs +++ b/src/DotNetCore.CAP/Abstractions/CapPublisherBase.cs @@ -12,9 +12,10 @@ namespace DotNetCore.CAP.Abstractions protected IDbConnection DbConnection { get; set; } protected IDbTransaction DbTranasaction { get; set; } protected bool IsCapOpenedTrans { get; set; } + protected bool IsCapOpenedConn { get; set; } protected bool IsUsingEF { get; set; } protected IServiceProvider ServiceProvider { get; set; } - + public void Publish(string name, T contentObj) { CheckIsUsingEF(name); @@ -83,7 +84,10 @@ namespace DotNetCore.CAP.Abstractions throw new ArgumentNullException(nameof(dbConnection)); if (dbConnection.State != ConnectionState.Open) + { + IsCapOpenedConn = true; dbConnection.Open(); + } if (dbTransaction == null) { @@ -122,8 +126,13 @@ namespace DotNetCore.CAP.Abstractions { dbTransaction.Commit(); dbTransaction.Dispose(); + } + + if (IsCapOpenedConn) + { dbConnection.Dispose(); } + PublishQueuer.PulseEvent.Set(); } @@ -142,8 +151,12 @@ namespace DotNetCore.CAP.Abstractions { dbTransaction.Commit(); dbTransaction.Dispose(); + } + if (IsCapOpenedConn) + { dbConnection.Dispose(); } + PublishQueuer.PulseEvent.Set(); }