.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);