4

Petapoco.cs 的核心是函数 OpenShareConnection。我相信这不能利用 SQL Azure 中的连接池。我正在监视我的连接,并且连接数超过了池限制。

有人做过一些改进吗?

这是 OpenShareConnection(来自 Petapoco 开源):

    public void OpenSharedConnection()
    {
        if (_sharedConnectionDepth == 0)
        {                
            //read the connection string from web.config and 
            //create a new connection
            _sqlConnection = _factory.CreateConnection(); 
            _sqlConnection.ConnectionString = _connectionString;


            // Wrap this method with a retry policy.
            _sqlConnection.Open();

            _sqlConnection = OnConnectionOpened(_sqlConnection);

            if (KeepConnectionAlive)
                _sharedConnectionDepth++;       // Make sure you call Dispose
        }
        _sharedConnectionDepth++;
    }
4

1 回答 1

0

https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql-server-connection-pooling

据我所见,Petapoco 正在与 ADO 连接池背后的基本前提作斗争,而不是创建新的 SQLConnection(string connectionString),然后在连接关闭时执行 .Close() 方法。

这 4 年除了蟋蟀唧唧喳喳什么都没有,这并不奇怪。9个月大的问题。

于 2017-08-29T15:14:22.310 回答