- PR -

ASP.NETでのODP.NET利用について

1
投稿者投稿内容
JUJU
会議室デビュー日: 2006/05/09
投稿数: 4
投稿日時: 2006-05-09 09:36
検証用に、ASP.NET(VB)でODP.NETを利用して、
Oracleのデータを検索・更新するWebサービスを
作成しているのですが、以下の問題が発生してしまい、
解決できない状態です。同じ問題に直面した方、
もしくはご存知の方いらっしゃいましたら、ご教示下さい。


(1)バージョン

Oracle Client 10.1.0.2.0
ODP.NET 10.1.0.2.0

(2)検証用コード(抜粋)

Imports Oracle.DataAccess.Client

        ・・・

Private oraCon As New OracleConnection
Private oraTra As OracleTransaction

        ・・・

' 接続情報の設定
oraCon.ConnectionString = "User ID=" & oraUsr & ";" & _
"Password=" & oraPass & ";" & _
"Data Source=" & oraIns
        ※oraUsr:Oracleユーザ
        ※oraPass:Oracleパスワード
        ※oraIns:接続文字列

' 接続
oraCon.Open()

' トランザクション開始
oraTra = oraCon.BeginTransaction()

(3)その他設定内容

Oracle Homeにワーカープロセスアカウント(ASPNET)の
読み取り実行権限を付与

(4)エラー状況

(2)のOpenメソッドを実行するステップで、以下の例外が
発生します。
---------------------------------------------------------------
NullReferenceException
オブジェクト参照がオブジェクトインスタンスに設定されていません
---------------------------------------------------------------

ちなみに、以前VB.NETで開発したWindowsアプリケーションでは、
同じコードで正常に動作しています。また、サーバを停止した状態と、
駆動状態では上記の同じ例外が発生するため、現在のところ、
Clientの問題ではないかと考えています。


宜しくお願い致します。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-05-09 10:01
どれが Null になっていますか? oraCon ? oraCon が Null ではないのに、NullReferenceException がスローされて困っているのでしょうか。

_________________
囚人のジレンマな日々
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-05-09 10:13
引用:

JUJUさんの書き込み (2006-05-09 09:36) より:

ちなみに、以前VB.NETで開発したWindowsアプリケーションでは、
同じコードで正常に動作しています。また、サーバを停止した状態と、
駆動状態では上記の同じ例外が発生するため、現在のところ、
Clientの問題ではないかと考えています。


SQL*Plus での接続は問題ありませんか?

コード:
oraCon.Open()
oraTra = oraCon.BeginTransaction() 


どちらで NullReferenceException がスローされますか?
BeginTransactionでスローされるならそもそも
Oracleへの接続に失敗しているきもします。
oraCon.State はどうなっていますか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-09 10:23
水を差すようですが、

引用:

JUJUさんの書き込み (2006-05-09 09:36) より:

(2)のOpenメソッドを実行するステップで、以下の例外が発生します。


とあるので、Open メソッドであるということは特定していると考えて良いでしょう。

引用:

NullReferenceException
オブジェクト参照がオブジェクトインスタンスに設定されていません


ただ、例外の詳細が不可解ですね。(こんなメッセージではないハズ)

引用:

ちなみに、以前VB.NETで開発したWindowsアプリケーションでは、
同じコードで正常に動作しています。


とあるので、コードにも問題はないと思います。
やはり、サービスに纏わる問題のように思えます。

うーん、OleDb などでは接続可能なのでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
JUJU
会議室デビュー日: 2006/05/09
投稿数: 4
投稿日時: 2006-05-09 14:19
早速の返答ありがとうございます。

引用:
どれが Null になっていますか?oraCon ?
oraCon.State はどうなっていますか?



oraConはNULLではありません。oraCon.Stateの値は、
Open前なのでClosedになっています。じゃんぬねっとさんの
言われるように、Webアプリ・サービス特定の問題なのかもしれませんが、
ちなみに、いろいろ調べていたら、IBM ThinkPadでは、ASP.NETから
ODP.NETが使えないというような情報(不確定)もあり、試しに別の端末で
動かしてみたところ、正常に動作することを確認しました。
(動作しなかった端末はT42です)

もう少し悩んでみようと思いますが、別の手段も視野に入れようと思います。
いろいろとアドバイス頂きまして、ありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-09 14:28
引用:

JUJUさんの書き込み (2006-05-09 14:19) より:

じゃんぬねっとさんの言われるように、Webアプリ・サービス特定の問題なのかもしれませんが、ちなみに、いろいろ調べていたら、IBM ThinkPadでは、ASP.NETから
ODP.NETが使えないというような情報(不確定)もあり、試しに別の端末で動かしてみたところ、正常に動作することを確認しました。


これらを確認するためにも、OleDb などでテストをして頂けると嬉しいです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
えび
会議室デビュー日: 2004/09/10
投稿数: 1
投稿日時: 2006-05-23 09:56
弊社の開発環境でも同様の障害が発生しました。

同じソースコードでもWindows版では問題なく動作し
WEBサービス側ではNullReferenceExceptionが返却されてしまいました。
これはODP.NETでもOLEDBを使用しても同じ場所で発生しました。

現象を探ったとところ原因は、ASP.NETユーザーがODP.NETを
実行する権限がない為エラーが発生しているようでした。

WEBサービス側のユーザーをAdministrator権限のあるユーザーに
偽装して再度実行したところ問題なく動作しました。
1

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