- PR -

[ASP.NET]oracleの接続エラーについて

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-07-23 10:48
引用:

SEIKEIさんの書き込み (2004-07-22 19:44) より:
SEIKEIさんの書き込み (2004-07-23 09:29) より:


 ん?エライ勘違いをしていた。
引用:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Echo
Set OraSess = Server.CreateObject("OracleInProcServer.XOraSession")
Set OraDb = OraSess.DbOpenDatabase("サービス名","ユーザ名/パスワード",clng(3))


 元の質問は、サーバで実行されるコードだったのですが、このコードはクライアントで実行されますね。


 ところで、質問から外れますが、これって、クライアントに送られるわけですが、「ソースを表示」するとサービス名やユーザ名、パスワードを見ることができてしまいます。それって、大丈夫ですか?
 また、クライアントすべてにOracleクライアントをインストールする必要がありますが、それでいいのですか?サーバに処理させると、クライアントにOracleクライアントをインストール必要はありませんよ。


 もどって、サービス名を「ORASVC」、ユーザ名/パスワードを「USER/PASSWD」とすると、SQLPLUSにどのように指定しましたか。
 また、「OracleInProcServer.XOraSession」については知らないのですが、DbOpenDatabaseメソッドの第3引数、clng(3)は何を表し、どんなものが入っていますか?

 Oracleメッセージを調べると、TNSNAMES.ORAにアクセス権がない場合も、12154のエラーになるようです。everyoneにアクセス権を付けたのは、サーバ/クライアントのどちらの、どのファイル(ディレクトリ)でしょう?この質問は、私がサーバ側の設定と勘違いしていた為のものです。

きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-07-23 12:28
Jittaさん、こんにちは。

引用:

 元の質問は、サーバで実行されるコードだったのですが、このコードはクライアントで実行されますね。


いや、
引用:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>


なので、サーバーサイドです。
ついでに言うと、ASP.NETではなくASPの話で、
引用:

 また、「OracleInProcServer.XOraSession」については知らないのですが、


これはOO4O(Oracle Objects for OLE)の話ですね。

引用:

DbOpenDatabaseメソッドの第3引数、clng(3)は何を表し、どんなものが入っていますか?


CLng()は VbScriptの長整数型を返す変換関数なので、
Const ORADB_ORAMODE = &H1

Const ORADB_NOWAIT = &H2
の組み合わせを意図しているのだと思いますが、これが有効な組み合わせかどうかは憶えてません。(^^;


きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-07-23 12:41
SEIKEIさん、こんにちは。

引用:

sqlplusではユーザ名とパスワードで接続できました。


という事ですが、実際のコードでは
引用:

Set OraDb = OraSess.DbOpenDatabase("サービス名","ユーザ名/パスワード",clng(3))


というようにユーザ名とパスワードの他に「サービス名」も指定しています。
ですから、ASPを実行しているサーバ上で、例えば
sqlplus ユーザ名/パスワード@サービス名
の形式で接続の確認を取るなどしないと意味がありません。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-07-23 13:54
引用:

きくちゃんさんの書き込み (2004-07-23 12:28) より:
ついでに言うと、ASP.NETではなくASPの話で、


が〜〜ん!
 なるほど、なぜにSCRIPTにRUNAT=SERVERなのだろうと思っていたのですが、くぅ〜!「<% call echo %>」でおかしいと気づくべきだった。。。
#ASPは、まったく知らないので
SEIKEI
会議室デビュー日: 2004/07/22
投稿数: 4
お住まい・勤務地: 福岡県
投稿日時: 2004-07-23 15:17
Jittaさん,きくちゃんさん
お世話になります。

sqlplus ユーザ名/パスワード@サービス名

で接続を確認いたしました。
いろいろいじくっていますが現在は

エラー タイプ
Oracle Automation (0x800A01B8)
接続できません。, Error while trying to retrieve text for error ORA-12154
/position_view.ASP, line 13

Set OraDb = OraSess.DbOpenDatabase("サービス名","ユーザ名/パスワード",clng(3))

のようなメッセージが出て奮闘中です。
上のメッセージをキーにして検索かけると数件ありますが,
よくわかりませんでした。
なにかございましたら情報をいただけたらと思います。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-07-23 15:25
Jittaさん、こんにちは。

引用:

引用:

ついでに言うと、ASP.NETではなくASPの話で、


が〜〜ん!


そもそも、どこからどこまでが大もとの質問からの引用なのかも曖昧な上、非.NETな質問である事も明記していないし...。
これじゃあ、誤解するなという方が無理かも知れません。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-07-23 16:45
SEIKEIさん、こんにちは。

まず、確認なのですが、ASP.NETではなくASPの話なんですよね?
SEIKEIさんのこのスレッドでの最初の投稿を見ると、VB.NET(という事はASPではなくASP.NETということになる)であるかのように読めてしまいますので、出来ればその辺は最初に明記しておいて頂きたいと思います。

で、ASPの実行ユーザは「IUSR_ローカルマシン(インターネット ゲスト アカウント)」なので、tnsnames.oraあたりのアクセス許可で、「ローカルマシン\Guests」グループに対して読み取り許可を与える必要があるかも知れません。「Everyone」には匿名ユーザは含まれていなかったと思いますので。

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