我正在尝试连接到位于某个IP地址的oracle服务器,但始终会收到错误
System.TypeInitializationException: 类型初始值设定项 'Oracle.DataAccess.Client.OracleConnection' 抛出一个例外。 ---> Oracle.DataAccess.Client.OracleException 提供商与之不兼容 Oracle客户端的版本 Oracle.DataAccess.Client.OracleInit.Initialize() 在 Oracle.DataAccess.Client.OracleConnection..cctor() ---内部异常堆栈跟踪结束---在Oracle.DataAccess.Client.OracleConnection..ctor(String connectionString)at WebApplication1._Default.Page_Load(对象 发件人,EventArgs e)in C:\ Users \ Sunil \ Documents \ Visual Studio 2008 \项目\ WebApplication1 \ WebApplication1 \ Default.aspx.cs:行 26
这是一个测试文件
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();
}
}
}
}
我已在 Windows Vista 下为ASP.NET安装了 oracle 10gR2客户端和 oracle 10gR2提供程序。我错过了什么吗?
问题部分解决我在提供商
之后安装了oracle客户端..但现在异常显示为
Oracle.DataAccess.Client.OracleException 在 Oracle.DataAccess.Client.OracleException.HandleErrorHelper(的Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OpoSqlValCtx * pOpoSqlValCtx,Object src,String 程序)at Oracle.DataAccess.Client.OracleException.HandleError(的Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,Object src)at Oracle.DataAccess.Client.OracleConnection.Open() 在 WebApplication1._Default.Page_Load(对象 发件人,EventArgs e)in C:\ Users \ Sunil \ Documents \ Visual Studio 2008 \项目\ WebApplication1 \ WebApplication1 \ Default.aspx.cs:行 28
答案 0 :(得分:2)
问题解决了... windows vista安全(?)问题我以管理员身份运行程序,一切正常
答案 1 :(得分:0)
看起来您的Oracle.DataAccess.dll版本与Oracle客户端安装不同步。例如,您可能正在使用最新版本的Oracle.DataAccess.dll,它需要Oracle 11客户端。
检查Oracle.DataAccess.dll的版本字符串。我相信Oracle 10 DLL版本为“10.x.y.z”,而Oracle 11 DLL的版本为“2.x.y.z”(是的,令人困惑)。
请注意,这是不服务器版本控制问题 - 这个错误发生在OracleConnection类尝试初始化时,很久才会与服务器通信。
答案 2 :(得分:0)
您可以尝试查看ASP.NET是否具有Oracle文件夹的权限,这可能是您的情况的原因