C# 企业图书馆问题
我们正在使用Enterprise Library 6.0和以下代码创建数据库实例并执行存储过程?非常感谢您的帮助。提前谢谢C# 企业图书馆问题,c#,asp.net,.net,enterprise-library,C#,Asp.net,.net,Enterprise Library,我们正在使用Enterprise Library 6.0和以下代码创建数据库实例并执行存储过程?非常感谢您的帮助。提前谢谢 DatabaseProviderFactory factory = new DatabaseProviderFactory(); Database db = factory.CreateDefault(); DbCommand dbCommand = db.GetStoredProcCommand("ProcedureName");
DatabaseProviderFactory factory = new DatabaseProviderFactory();
Database db = factory.CreateDefault();
DbCommand dbCommand = db.GetStoredProcCommand("ProcedureName");
OracleParameter outval = new OracleParameter("Test", OracleDbType.RefCursor);
outval.Direction = ParameterDirection.Output;
dbCommand.Parameters.Add(outval);
using (IDataReader reader = db.ExecuteReader(dbCommand))
{
while (reader.Read())
{
}
}
<add name="providerConnString" connectionString="Data Source=ABCD;Password=testuser;User ID=testpwd" providerName="Oracle.DataAccess.Client" />
DatabaseProviderFactory=newdatabaseproviderfactory();
数据库db=factory.CreateDefault();
DbCommand DbCommand=db.GetStoredProcCommand(“ProcedureName”);
OracleParameter outval=新的OracleParameter(“测试”,OracleDbType.RefCursor);
outval.Direction=参数Direction.Output;
dbCommand.Parameters.Add(outval);
使用(IDataReader reader=db.ExecuteReader(dbCommand))
{
while(reader.Read())
{
}
}
我们间歇性地收到以下异常。当我们试图在空闲时间后访问应用程序时,就会发生这种情况。企业库中的连接池是如何发生的?如果应用程序长时间处于空闲状态,它将如何工作?默认最小池大小和默认最大池大小是多少
调用的目标已引发异常。
System.Reflection.TargetInvocationException:已引发异常
通过调用的目标。-->
System.TypeInitializationException:的类型初始值设定项
“Oracle.DataAccess.Client.OracleClientFactory”引发异常。
--->System.TypeInitializationException:“Oracle.DataAccess.Client.CThreadPool”的类型初始值设定项引发异常。-->
System.Runtime.InteropServices.COMException:检索COM类
具有CLSID的组件的工厂
{CB2F6723-AB3A-11D2-9C40-00C04FA30A3E}由于以下原因失败
错误:800703fa试图对已删除的注册表项执行非法操作
已标记为删除。(HRESULT的例外:0x800703FA)。在
Oracle.DataAccess.Client.CThreadPool..cctor()---内部线程结束
异常堆栈跟踪---在
Oracle.DataAccess.Client.OracleInit.Initialize()---内部
异常堆栈跟踪-----内部异常堆栈跟踪的结束
---在System.RuntimeFieldHandle.GetValue(RtFieldInfo字段、对象实例、RuntimeType字段类型、RuntimeType declaringType、布尔值&
域名(已初始化)位于
System.Reflection.RtFieldInfo.UnsafeGetValue(对象obj)位于
System.Reflection.RtFieldInfo.InternalGetValue(对象对象obj,
堆栈爬网标记和堆栈标记)
System.Reflection.RtFieldInfo.GetValue(对象obj)位于
System.Data.Common.DbProviderFactorys.GetFactory(DataRow providerRow)
在
Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSyntheticConfigSettings.GetDefaultMapping(字符串
dbProviderName)位于
Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSyntheticConfigSettings.GetDatabaseData(ConnectionString设置
连接字符串、数据库设置(数据库设置)位于
Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSyntheticConfigSettings.GetDatabase(字符串
姓名)在
Microsoft.Practices.EnterpriseLibrary.Data.DatabaseProviderFactory.DatabaseConfigurationBuilder.b__2(字符串
n) 在
System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey
键,Func
2值工厂)
Microsoft.Practices.EnterpriseLibrary.Data.DatabaseProviderFactory.DatabaseConfigurationBuilder.CreateDefault()
我与IIS中的应用程序池标识用户有问题。我删除了身份用户并放置了默认身份用户。然后恢复为我的自定义用户标识。这解决了我的问题。企业库不显式执行任何连接池。连接池将由底层提供者处理(在本例中,我相信是ODP.NET)。这表示使用组策略编辑器将“用户注销时不要强制卸载用户注册表”选项更改为“已启用”。