下面这两篇文章应该会有一定帮助。你这种问题一般就是程序没有关闭连接造成的。如果程序不主动关闭连接,连接将在GC回收SqlConnection 对象时关闭,而要等到GC回收,需要一个时间。我分析单核的没问题是因为单核机器速度较慢,在发起下次连接之前GC回收了SqlConnection 对象。但4核的速度较快,连接发生很快,GC来不及回收。
http://blogs.msdn.com/spike/archive/2009/01/14/how-to-prepare-for-a-sql-developer-connectivity-case.aspx
http://blogs.msdn.com/spike/archive/2008/08/25/timeout-expired-the-timeout-period-elapsed-prior-to-obtaining-a-connection-from-the-pool.aspx
关注,本能感觉要多考虑高并发的问题,包括发起数据链接的高并发。