2008-09-10 33 views
1

次の例外の考えられる原因は何でしょうか?現在のプラットフォームで 'リソースプール'がサポートされないのはなぜですか?

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で問題なくテストされています。しかし、プラットフォームに関係なく、どのような理由でこの例外が発生するのかを知ることは面白いでしょう。

答えて

1

Reflectorを使用してソースを突き刺しました.RolePoolの静的コンストラクタでPlatform.Assertを呼び出すことができないようです。

Windows 2003サーバーは64ビットですか?それは問題かもしれません。

+0

ReflectorにSystem.EnterpriseServicesをロードする必要があります。 ResourcePoolのコンストラクターには、次の行が含まれます。 Platform.Assert(Platform.W2K、 "ResourcePool"); これは質問に答えませんが、少なくとも例外の原因があります。 – csgero

関連する問題