- - PR -
「"System.Data.OracleClient.OCI" のタイプ初期化子が例外をスローしました。」というエラーが出る。
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-06-14 16:40
こんにちは。
知っている方がいたら教えてください。 Windows2003Serverに、VB.NETで作成したWebアプリケーションをインストールして、 データベースにConnectしようとすると、「"System.Data.OracleClient.OCI" のタイプ 初期化子が例外をスローしました。」と言うエラーが出てしまいます。 何のことだかさっぱりわからないのですが、ご存知の方いらっしゃいますか? ちなみに、データベースはOracle10.1.0.4で「Oracle data Provider」を使用して、 ODBC経由で接続しようとしています。 このエラーは、Windows2000及びWindowsXPにIISを立てて実行した際には発生しません。 Windows2003のみ(2台で確認)で起きます。 よろしくお願い致します。 | ||||
|
投稿日時: 2005-06-14 18:24
クラスの初期化に失敗したという例外をそのまま受け取るなら、クラスの扱いに間違いがあるのでしょう。どういうコードですか?
System.Data.Odbcを使ってはいかが http://www.microsoft.com/japan/msdn/library/?url=/japan/msdn/library/ja/cpref/html/frlrfSystemDataOdbc.asp?frame=true そもそも、ORACLEにつなぐならODP.NETがよいです。 _________________ たつごろー codeseek こみゅぷらす | ||||
|
投稿日時: 2005-06-15 09:18
回答ありがとうございます。
エラーが発生するのは、以下の「myConnection.Open()」時だと思います。 Windows2003だと何か違うんですかね? ------------------------------------- 'データベースコネクションを開く '@return コネクション Public Function openConnection() As OracleConnection Dim myConnString As String Dim myConnection As OracleConnection Try myConnection = newConnection() myConnection.Open() msg = "ServerVersion: " + myConnection.ServerVersion _ + ControlChars.Cr + "DataSource: " + myConnection.DataSource.ToString() Return myConnection Catch ex As Exception msg = ex.Message() End Try End Function | ||||
|
投稿日時: 2005-06-15 09:34
見落としてました。 ODP.NETですよね。 ならば、ODBCは使いませんよね。 今作っているプログラム以外で、これまでにそのデータベースにうまくつながったことがありますか? なかったら、まずは、サンプルでもいいから動かしてみてはいかがでしょう。 うまく動いたものと動かなかったものの差を見つけることで問題を克服できるでしょう。 ここで質問してもいいのですが、ORACLE色の強いことなので、OTNの方がよりよいでしょう。 _________________ たつごろー http://www.codeseek.net [ メッセージ編集済み 編集者: たつごろー 編集日時 2005-06-15 09:35 ] | ||||
|
投稿日時: 2005-06-15 09:47
Microsoft製の.NET Framework Data Provider for Oracleを使用しています。
Imports System.Data.OracleClient と定義していて、 ODBCとの接続部分は以下の通りです。 -------------------------------- 'データベースコネクションの作成 Public Function newConnection() As OracleConnection Dim myConnString As String Dim myConnection As OracleConnection Try myConnString = "Data Source=orairis;" _ + "User ID=websda;" _ + "password=websda;" ' プーリングを使用する接続文字列(最大プール数=20 最小プール数=5) _ 'myConnString = myConnString + "Pooling=true;Max Pool Size=20;Min Pool Size=5;" myConnString = myConnString + "Connection Lifetime=60;" myConnection = New OracleConnection(myConnString) Return myConnection Catch ex As Exception msg = ex.Message() End Try End Function -------------------------------- Windows2000,XPのマシンからは正常にこのアプリは動くんですよ。 Windows2003からだけ駄目なんです。 Frameworkのバージョンのせいでしょうか。 | ||||
|
投稿日時: 2005-06-15 09:52
バージョン違うの?なら動かないことがあります。 同じにして試してはいかが。 _________________ たつごろー http://www.codeseek.net [ メッセージ編集済み 編集者: たつごろー 編集日時 2005-06-15 09:52 ] | ||||
|
投稿日時: 2005-06-15 10:01
Visual Studio 2002で作成したので、開発環境のFrameworkのバージョンは1.0です。
しかし、顧客の本番サーバーは、Windows2003なので、バージョンが1.1だと 思うのです。 初めての.NETなので、わからないことだらけで。 ですから、顧客の本番機のFrameworkのバージョンを下げることはできませんし、 原因が、Frameworkのバージョンの問題であれば、動くようにプログラムを変えないと いけないんです。 | ||||
|
投稿日時: 2005-06-15 10:08
Visual Studio 2003で開発すべきです。 無いなら、.NET Framework1.1 SDKでコンパイルしてはいかがでしょう。 .NET Framework 1.1 の入手方法 http://www.microsoft.com/japan/msdn/netframework/downloads/howtoget.asp _________________ たつごろー codeseek こみゅぷらす |
1|2|3
次のページへ»