我试图连接到位于某个IP地址的oracle服务器,但始终收到错误信息,如
System.TypeInitializationException:“Oracle.DataAccess.Client.OracleConnection”的类型初始化引发了一个异常。
这是一个测试文件
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Oracle.DataAccess.Client;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
try {
string oradb = "Data Source=(DESCRIPTION=(ADDRESS_LIST="
+ "(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.11)(PORT=1523)))"
+ "(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)));"
+ "User Id=<user id>;Password=<some password>;";
OracleConnection conn = new OracleConnection(oradb); // C#
conn.Open();
}
catch (Exception ex){
Label1.Text = ex.ToString();
}
}
}
}我已经安装了oracle10gR2客户端和oracle10gR2提供程序 for ASP.NET,在Windows 下。我有遗漏什么吗?
问题部分解决了,我安装了一个接一个的oracle客户端。
..but现在显示为
Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx* pOpoSqlValCtx,Object src,String Oracle.DataAccess.Client.OracleException at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,Object src) at Oracle.DataAccess.Client.OracleConnection.Open() at WebApplication1._Default.Page_Load(对象发送方,(c:\ EventArgs \Visual 28 )
发布于 2010-03-23 05:37:28
问题解决了..。windows vista安全系统(?)是我作为管理员运行程序的问题,一切正常吗?
发布于 2010-03-19 04:04:19
看起来,您的Oracle.DataAccess.dll版本与您的Oracle安装不同步。例如,您可能正在使用Oracle.DataAccess.dll的最新版本,它需要Oracle11客户端。
检查Oracle.DataAccess.dll的版本字符串。我相信Oracle 10 DLL是版本"10.x.y.z“,Oracle 11 DLL是版本"2.x.y.z”(是的,它令人困惑)。
请注意,这不是服务器版本控制问题--此错误发生在OracleConnection类尝试初始化自身时,很久之后它才能与服务器对话。
发布于 2010-03-19 05:32:03
您可以尝试查看ASP.NET是否对Oracle文件夹具有权限,这可能是造成您的情况的原因。
https://stackoverflow.com/questions/2474798
复制相似问题