为什么当前平台不支持"资源池"?
时间:2020-03-05 18:50:35 来源:igfitidea点击:
出现以下异常的可能原因是什么?
System.PlatformNotSupportedException: 'ResourcePool' is not supported on the current platform. at System.EnterpriseServices.Platform.Assert(Boolean fSuccess, String function) at System.EnterpriseServices.Platform.Assert(Version platform, String function) at System.EnterpriseServices.ResourcePool..ctor(TransactionEndDelegate cb) at System.Data.SqlClient.ConnectionPool..ctor(DefaultPoolControl ctrl) at System.Data.SqlClient.PoolManager.FindOrCreatePool(DefaultPoolControl ctrl) at System.Data.SqlClient.SqlConnectionPoolManager.GetPooledConnection(SqlConnectionString options, Boolean& isInTransaction) at System.Data.SqlClient.SqlConnection.Open()
该平台是Windows 2003 Server SP2. 相同的代码已经在Windows XP SP2上进行了测试,没有任何问题。但是,不管平台如何,了解导致此异常的原因都是很有趣的。
解决方案
回答
我使用Reflector戳了一下资源,但似乎在ResourcePool的静态构造函数中找不到对Platform.Assert的任何调用。
Windows 2003 Server是64位的吗?那可能是问题所在。