日期:2014-05-18  浏览次数:20401 次

asp.net连接oracle数据库,报错"[NullReferenceException: 未将对象引用设置到对象的实例。]"

  .net framework 1.1, oracle 9i,xp系统

  asp.net的部署与oracle数据库在同一台机器上,oracle数据库安装在NTFS分区下,authenticated users、everyone、

network service等用户对ora92目录的权限都已经做了相应的设置,出错代码如下:

  OraConn = new OracleConnection( "Data Source=**;User Id=**;Password=**" );
  OraConn.Open();


  堆栈跟踪:
  [NullReferenceException: 未将对象引用设置到对象的实例。]
  LoadLibraryW(UInt16* ) +0
  System.EnterpriseServices.Thunk.Security.Init() +76
  System.EnterpriseServices.Thunk.Security.SuspendImpersonation() +81
  System.EnterpriseServices.Platform.Initialize() +503
  System.EnterpriseServices.ResourcePool..ctor(TransactionEndDelegate cb) +11
  System.Data.OracleClient.DBObjectPool..ctor(DBObjectPoolControl ctrl) +771
  System.Data.OracleClient.DBObjectPoolManager.FindOrCreatePool(DBObjectPoolControl ctrl) +109
  System.Data.OracleClient.OracleConnectionPoolManager.GetPooledConnection(String encryptedConnectionString, OracleConnectionString options, OracleConnection owningObject, Boolean& isInTransaction) +147
  System.Data.OracleClient.OracleConnection.OpenInternal(OracleConnectionString parsedConnectionString, Object transact) +600
  System.Data.OracleClient.OracleConnection.Open() +32



  有经验的高手们请帮忙解答以下!!!!!!!!!!!!!!!!!!!!!!!


------解决方案--------------------
还是权限的问题,你将权限IWAM IUSr 两帐号再加进去看看。
以前也遇到过,不过我将权限放大就OK了

------解决方案--------------------
OracleConnection OraConn = new OracleConnection("Data Source=**;User Id=**;Password=**");
if(OraConn.State == ConnectionState.Closed) 
{
OraConn.Open();
}
试试这样写。。
------解决方案--------------------
如果是NTFS权限 需要将 ORACLE目录authenticated 用户对应 的权限 先去掉“运行”权限确定,然后再添加上去 

试一试吧 ORACLE在NTFS磁盘上的权限有bug 这个网上应该有,搜一下,如果不行就不知道了。
------解决方案--------------------
我方法和你一样,没有问题,和你唯一的区别就在于最后那个分号
string StrConn = "Data Source=SUPERV;User ID=A_SUPERVISOR;Password=123;";
OracleConnection Oracle = new OracleConnection(StrConn);