- PR -

Windows2008x64でのODP.NETエラー

投稿者投稿内容
kita
会議室デビュー日: 2009/02/09
投稿数: 4
投稿日時: 2009-02-09 15:52
ASP.NET2.0 ODP.NETの組み合わせで、Webアプリを開発してます。
今回、Windows2008Server (X64)に、VisualStudio2008とODP.NET 11.1.0.6.20をインストールしました。
デバックして、仮想IIS(?)では、正常に動作するのですが、実際の実行環境(IIS7)で実行すると
『ファイルまたはアセンブリ 'Oracle.Web, Version=2.111.6.20, Culture=neutral, PublicKeyToken=89b483f429c47342'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。』という
エラーがでます。
どなたか、同じエラーで解決された方いましたら教えて下さい。

環境
OS:Win2008Svr X64
ASP.NET 2.0.50727
ODP.NET 11.1.0.6.20
VisualStudio2008
Oracle9.2.0.1.0(別サーバ)
ごん太
大ベテラン
会議室デビュー日: 2002/07/30
投稿数: 182
お住まい・勤務地: 森の中
投稿日時: 2009-02-09 16:25
引用:

kitaさんの書き込み (2009-02-09 15:52) より:
実際の実行環境(IIS7)で実行すると



開発環境と実行環境はサーバーが異なると言う認識で良いでしょうか?
実行環境にdllはありますか?
※Oracle9.2.0.1.0(別サーバ) と言う表記が気になりますが。


[ メッセージ編集済み 編集者: ごん太 編集日時 2009-02-09 16:27 ]
kita
会議室デビュー日: 2009/02/09
投稿数: 4
投稿日時: 2009-02-09 16:36
開発環境と実行環境は同一環境(Win2008ServerX64)を使用してます。
このサーバには、.net開発ツール(VS2008)とODP.NETが入ってます。
DBサーバは、別サーバでOracle9iです。
ODPとOracleDBのバージョン違いによるものかと思いましたが、
開発環境(://localhost:49656/アプリ名)では正常に動作します。
同一サーバのIIS(7)に、WebSiteを作成・配布して(://localhost/WebSite/アプリ名)で実行すると、上記のエラーが出てしまいます。

GACを確認したのですが、Oracle.DataAccessの登録もされてます。


ごん太
大ベテラン
会議室デビュー日: 2002/07/30
投稿数: 182
お住まい・勤務地: 森の中
投稿日時: 2009-02-10 10:10
ODPの11が接続可能なOracle DatabaseはOracle9i Database Release 2 以降であれば可能なはずですのでバージョン違いは問題ないです。

OracleCommand
OracleCommandBuilder
OracleConnection
OracleDataAdapter
を参照された時は名前空間がOracle.DataAccess.Clientのコンポーネントを選択されていますよね?
kita
会議室デビュー日: 2009/02/09
投稿数: 4
投稿日時: 2009-02-10 13:06
ソース抜粋です。

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 WebTest
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
OracleConnection conn = new OracleConnection();
conn.ConnectionString =
           "User Id=user1;Password=password1;Data Source=testdb";
conn.Open();
OracleCommand comm = conn.CreateCommand();
comm.CommandText = "select name from master where code = '**'";
OracleDataReader dr = comm.ExecuteReader();
dr.Read();
TextBox1.Text = dr[0].ToString();
dr.Close();
conn.Close();
}
}
}

Oracle.DataAccessのパスは、
C:\app\Administrator\product\11.1.0\client_1\ODP.NET\bin\2.x\Oracle.DataAccess.dll

バージョンは、
v2.0.50727で、参照に追加してあります。

デバックして仮想IISでは、動作するのでソース上の問題ではないと思うのですが・・・

セラフ
ベテラン
会議室デビュー日: 2005/12/01
投稿数: 95
お住まい・勤務地: 東北の顔の形といえば
投稿日時: 2009-02-10 13:27
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=47885&forum=7
↑これとか関係ないでしょうか?
ごん太
大ベテラン
会議室デビュー日: 2002/07/30
投稿数: 182
お住まい・勤務地: 森の中
投稿日時: 2009-02-10 17:34
OS:VISTA
ODP.NET 11
Oracle 11g
FrameWork3.5
VS2008

上記環境よりOracle9.2先のデータベースにアクセスするASP.NETを作成してみましたが問題無く開発、WEB上ともに動きますねぇ。。。
ごん太
大ベテラン
会議室デビュー日: 2002/07/30
投稿数: 182
お住まい・勤務地: 森の中
投稿日時: 2009-02-11 07:04
ちなみにODPを使用してない状況ではページは表示されるのでしょうか?

スキルアップ/キャリアアップ(JOB@IT)