簡體   English   中英

OracleConnection.Open()在ASP.NET中不起作用

[英]OracleConnection.Open() not working in ASP.NET

我有一個VC#應用程序試圖打開Oracle數據庫,但是當它調用OracleConnection.Open()時,它會拋出“嘗試讀取或寫入受保護的內存”。

這是錯誤的堆棧跟蹤:

Unhandled Exception: System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
   at Oracle.DataAccess.Client.OpsCon.Open1(IntPtr& opsConCtx, IntPtr& opsErrCtx, OpoConValCtx* pOpoConValCtx, OpoConRefCtx& pOpoConRefCtx)
   at Oracle.DataAccess.Client.OpsCon.Open(IntPtr& opsConCtx, IntPtr& opsErrCtx, OpoConValCtx* pOpoConValCtx, OpoConRefCtx& pOpoConRefCtx)
   at Oracle.DataAccess.Client.ConnectionDispenser.CreateConnectionPool(OpoConCtx& opoConCtx)
   at Oracle.DataAccess.Client.ConnectionDispenser.GetConnectionPool(OpoConCtx& opoConCtx, Boolean& bConObtained)
   at Oracle.DataAccess.Client.ConnectionDispenser.Open(OpoConCtx opoConCtx, Int32 enlistAttrVal, Boolean& bGotEnlistedConnection)
   at Oracle.DataAccess.Client.OracleConnectionOCP.Open(OracleConnection con)
   at Oracle.DataAccess.Client.OracleConnection.Open()
   at GenericOracleLogin.frmMain.btnLogin_Click(Object sender, EventArgs e) 
in C:\VS\Workspaces\Visual Studio 2017\Projects\GenericOracleLogin\GenericOracleLogin\Form1.cs:line 56

這是C#代碼的相關部分:

        OracleConnectionStringBuilder ConnString = new OracleConnectionStringBuilder();
        ConnString.DataSource = txtDataSource.Text;
        ConnString.UserID = txtUsername.Text;
        ConnString.Password = txtPassword.Text;
        String ConnectionString = ConnString.ToString();

        Conn = new OracleConnection(ConnectionString);
        Conn.Open();

在Conn.Open()處引發異常

我正在使用Oracle.DataAccess版本4.122.1.0; 它是在64位應用程序上運行的64位版本

需要注意的兩件事:

首先,這是在卸載Oracle之后再將其重新安裝到另一個目錄之后完成的。 我在任何GAC目錄中都找不到對“ oracle.dataaccess”的引用。 我也沒有在任何可讀的machine.config文件中看到任何BindingRedirects。

其次,當我使用Oracle.ManagedDataAccess代替Oracle.DataAccess時,代碼起作用了。

我認為問題是,它沒有使用我要使用的特定版本的Oracle.DataAccess.dll。 我該如何解決?

我發現,雖然我的主Oracle odp.net目錄具有我正在使用的Oracle.DataAccess.dll版本4.122.1.20161216,但我的Oracle Data Toold odp.net目錄卻具有版本4.122.1.20170524。 當我使用較新的版本時,該應用程序成功運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM