• ベストアンサー
  • すぐに回答を!

ASPを用いてSQLServerからのデータ取得ができません。

ASPを使ってSQLServerからのデータ取得ができません。 クライアントのPCから、Webサーバ経由でDBサーバへアクセスすると、 『[Microsoft][ODBC SQL Server Driver]分散トランザクション エラー』 というエラーメッセージが表示されます。 WebサーバとDBサーバが同一PC上にある場合は、問題なく実行できます。 また、同じテーブルを使って、簡単なサンプルコードを実行した場合では、WebサーバとDBサーバが別々のPC上にあっても問題なく動きます。 原因はIIS、もしくはSQLServerの設定にあるのか、それともASPファイルのソース自体にあるのか、わかりません。 どなたかご存知の方、よろしくお願いします。 DBとの接続はADO接続で、環境は、 Webサーバ/WindowsXP Pro、IIS 5.0 DBサーバ/WindowsXP Pro、SQLServer2000 を使っています。

共感・応援の気持ちを伝えよう!

  • SQL Server
  • 回答数2
  • 閲覧数1090
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1
  • O_cyan
  • ベストアンサー率59% (745/1260)

msdtc.exeをファイヤーウォールの例外に登録する。 ネットワークDTCアクセスは有効になっていますか? 双方で[管理ツール][コンポーネントサービス][MSTDC][セキュリティの構成][トランザクションマネージャ通信]で送受信とも許可にしてみる。 [COMセキュリティ][アクセス許可][制限の編集]でANONYMOUS LOGON,Everyone双方にリモートアクセス許可を与える。

共感・感謝の気持ちを伝えよう!

質問者からの補足

ご回答ありがとうございます。 なにぶん経験が浅いもので、理解できない部分が多いのですが、 上記の点を調べてみたところ、ソース上の、 <% @Transaction=Required %> タグをコメントアウトすると正常に動作することがわかりました。 どのような原因が考えられるのでしょうか? msdtc.exeをファイヤーウォールの例外に登録しました。 [トランザクションマネージャ通信]と [COMセキュリティ]はどこをいじればよいのかわかりません。 もしよろしければ再度の回答をよろしくお願いします。

その他の回答 (1)

  • 回答No.2
  • O_cyan
  • ベストアンサー率59% (745/1260)

><% @Transaction=Required %> <%@language="VBScript" Transaction=Required %> では >[トランザクションマネージャ通信] 分散トランザクションコーディネータ(MSDTC)を使っていますよね。 [プログラム]→[管理ツール]に[コンポーネントサービス]がありませんか。 なければ[ファイル名を指定して実行]dcomcnfg.exeと入力し[OK] をクリックし[コンポーネントサービス][コンピュータ][マイコンピュータ]を順に展開します。[マイコンピュータ] を右クリック[プロパティ]で[セキュリティの構成]をクリック。そこに[トランザクションマネージャ通信]がありませんでしょうか。 分散トランザクションの実行を許可するには[トランザクションマネージャ通信]の[受信を許可する]をオンにします。 [MSDTC]タブにある[ネットワークDTCアクセス]をオン。 これでMSDTCのネットワークトランザクションを有効にします。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

再度調べてみたところ、RPCのサービスが開始されていませんでした。 無事解決致しました。色々とありがとうございました。

質問者からの補足

親切なご回答ありがとうございます。 お教えいただいた内容を試してみたところ、そのときは間違いなく実行できたのですが、一度PCの電源を落とした後に再度実行したら、なぜか以前の症状に戻ってしましました。 設定を変更した箇所を確認しましたが、以前の状態に戻っているようなことはありませんでした。 なにか他に原因が考えられるのでしょうか?

関連するQ&A

  • SQLServer2000でログインできません

    Windows2000SP4、IISの環境です。 1.SQLServer2000の認証:Windows認証を使用 2.ODBC接続時、 1)接続するサーバ名:Local 2)SQL ServerがログインIDの権限の確認を行う方法は    :ネットワークへのログインIDでWindows NTの認証メカニズムを使う 3.ASPファイルで以下のように記述しています。 Set Conn = Server.CreateObject(\"ADODB.Connection\") Conn.Open \"DSN=*****ODBCで登録した名前\" 4.エラーメッセージ: Microsoft OLE DB Provider for ODBC Drivers (0x80040E4D) [Microsoft][ODBC SQL Server Driver][SQL Server]ユーザー \'*****(私のサーバ名)\' はログインできませんでした。 index.asp, line 22 5.その他 SQLクエリアナライザでは何も問題なく接続できます。 以上、説明が不十分かもしれません。 なぜログインできないか、ご存知の方教えてください。よろしくお願いします。

  • Windows2000 と SQLServer2000 と IIS5.0 の組み合わせでASPが動かない

    今、WindowsNT SP6と IIS と SQLServer2000を使って、 (すべて1つのPCの中にインストールしてあります) WEB側から、サーバーのデータベースの中を 検索し、参照するプログラムを動かすことができています。 同じことを、Windows2000 にしてやろうと しているのですが、 Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバが見つかりません。 となり、参照することができません。 ODBCの設定は合っていると思うのですが、 Windows2000 ではできないのでしょうか? ユーザーの設定とかでしょうか?権限の問題? どなたか教えてください。困ってます。 足りない情報があれば補足致します。

  • SQLSERVERへのODBC接続について

    はじめまして。SQLSERVERへのODBC接続がうまくいきません。 初心者ですがよろしくお願いします。 自宅に2台のPCがあり、LAN接続できるようになっています。 (2台ともWindowsXP HomeEdition SP3です) 1台のPCにSQL SERVER2005をインストールしてリモート接続等の環境設定を行いました。 そのサーバーに別のPCからSQL Server Management Studio Expressを利用して接続できることを確認しました。 (テーブルも作成してみました) また、別のPCからEXCELのVBAでADODBを利用して、そのテーブルのデータを取得できることも確認しました。 しかしながら、ODBCのデータソース作成がうまくいきません。 ●ドライバ  SQL Server バージョン:2000.85.1132.00 ●エラー内容  [ODBC SQL Server Driver][TCP/IP Sockets]指定されたSQL Server  が見つかりません。  ※最初はアクセスが拒否されましたみたいなエラーが出ていた   ような気もするのですが・・・ ドライバにSQL Native Client Version09.00.2047を使ってみても、「サーバー接続の確立時にエラーが発生しました」となってしまい接続できませんでした。 ODBCを利用する場合には、何か特別な設定等が必要なのでしょうか? よろしくご教授お願いします。

  • SQLServerへのOpen命令でのエラー

    お世話になります。 ASPの画面からSqlServerにADO経由で接続しているのですが、 時々、Openでエラーとなってしまいます。  oRS.Open "TBL_NAME", 接続情報, 3, 3   → この命令でエラーとなってしまいます。  エラー内容は  「Microsoft OLE Provider for ODBC Drivers (0x80040E14)   [Microsoft][ODBC SQL Server Driver][SQL Server]'TBL_NAME' は テーブル オブジェクトなので、   要求 プロシージャ 'TBL_NAME' は失敗しました。」  と表示されます。 開発環境は以下  OS:Windows2000  データベース:SQLServer2000 となっております。 何方か、ご存じの方がいらっしゃいましたら、お教え願います。 宜しくお願い致します。

  • SQLServerにodbcで接続

    こんにちは。 WindowsServer2003でIIS・SQLServer・ASP(VBScript)を使って簡単なデータベースを作りたいのですが、いきないつまずいています。 testデータベースをSQLServerで作り、ODBCに【odbcsqlsv】と登録しました。 ASPスクリプトを <%@ Language=VBScript %> <html> <head> <title>動作テストHTML</title> </head> <body> <% Response.Write "テストーASP" Set cn = server.CreateObject("ADODB.Connection") StrCn ="odbcsqlsv" cn.Open StrCn strSQL = "SELECT * FROM table2" Set RS = cn.Execute(strSQL) Do While Not RS.EOF Response.Write RS.fields("name") RS.movenext Loop cn.close set cn = nothing %> </body> </html> を書き実行すると Microsoft OLE DB Provider for ODBC Drivers エラー '80040e4d' [Microsoft][ODBC SQL Server Driver][SQL Server]ユーザー '(null)' のログインに失敗しました。理由 : SQL Server の信頼関係接続に関連付けられていません。 とエラーが出ます。 SQL Serverの信頼関係接続とは何でしょうか? また関連付けはどのようにして行ったらよいのでしょうか? すみませんが、ご教授のほどをよろしくお願いします。

  • VB5 + SQLServer2005 で長時間の処理

    今までVB5 OS:windowNT4.0 DB:SQLServer6.5 上で稼働していたシステムをサーバ入替があり OS:Windows2003 Server R2 DB:SQLServer2005 Standard Edition に入れ替えたところ データを読み込んで更新するような処理を1時間ぐらい実行していると Microsoft OLE DB Provider for ODBC Drivers でエラーが発生しました。 [Microsoft][ODBC SQL Server Driver][Named Pipes]ConnectionRead (WrapperRead()). というエラーが発生します。 この現象を回避するにはどうしたらよろしいでしょうか?

  • ASP 0x80004005 クライアントとの確立で失敗

    いつもお世話になっています。 つい昨日まで、対SQLserverにDB取得が出来ていたのですが、今日になって下記のエラーが発生してしまいました。 IISは匿名アクセスにはチェックが入っている状態です。 なぜこのような現象になるか全く掴めなくて困っております。 ----------------------------------------- エラー タイプ Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC SQL Server Driver]クライアントの接続が確立できません ----------------------------------------- どなたか、ご教授をお願いいたします。 設定の確認事項は補足を入れていただければ、早急にお答えいたします。

  • SQLServer2005のODBC接続・更新について

    当方SQLServer2005初心者ですが、おわかりになる方いらっしゃいましたら、ご教示下さい。 SQLServerにODBC接続し、参照、更新を行なうアプリケーションを使用しているのですが、更新を行おうとすると下記エラーが出てしまいます。 **************** 実行時エラー4002:37000 【Microsoft ODBC SQL Server Driver】 SYSSERVERSにサーバーXP_001が見つかりませんでした。 Sp_Add LINKED SERVERを実行してサーバーをSYSSERVERSに追加して下さい **************** 構成としては、サーバー(Windows 2003 Server)にSQLServer2005がインストールされており、当該アプリケーションはWindowsXPのクライアント端末にインストールされています。 ODBCドライバは sqlsrv32.dll(2000.85.1117.00) SQLNCLI.dll(2005.90.2047.00) をそれぞれ試しました(表示されるエラーはドライバ名以外同一でした)。 付帯情報として、アプリケーションのインストールされている端末にSQLServer2005をインストールし、同一端末内で接続する場合には更新も問題なくできます。 原因および対処についてご教示下さい。 宜しくお願い致します。

  • SQLServer2005に接続出来ません

    対象方法または調査方法をご存じの方お願いします。 (環境) サーバ: OS:Windows2003 Server DB:SQLSerever2005 SP2 クライアント: OS:Windows2000 Professional SP4 MDAC:2.6 上記環境でODBC、ADO(VB6でコーディング)ともに 接続出来ません。 エラーは”HYT00、エラー0です。過去ログを参照にSQLServer側 の接続待機時間を70秒に増やしましたが現象変わりません。 SQLServer2005の設定ですがリモート接続はローカル接続および リモート接続、TCP/IPのみを使用するを選択しています。 サーバ認証はSQLServer認証です。 また、SQLServer側でログを採取しましたが有効な接続、エラー 接続ともに採取出来ませんでした。念のためPINGを試しましたが 問題なく応答があります。 同一ネットワーク環境のWindowsXP端末では問題なく接続できます。 以上、宜しくお願いいたします。

  • Win2kのServerでASPが動かない

    以下のような状況になって困っています。 Windows2000のProfessionalに IISを導入して、HTMLやASPを動かしています。 こちらでは、特に問題なくHTMLもASPも動いています。 そこで、別のPCでOSが Windows2000 Serverのマシンに同じようにIIS を設定しました。ところが、Serverのほうでは,HTMLはIISを通して見れるの ですが、ASP のファイルを呼ぶと必ず HTTP 500 - 内部サーバー エラー となってしまいます。 HTMLが見えるということはIISが死んでいる、というわけでもないようですし、 IISの仮想フォルダにも、スクリプトの実行権限は与えています。 また、動かないASPは、単純にレスポンスを返しているだけですので、 ODBCまわりの問題でもありません。ASPのマッピングも、外れてません。 で、全然別のPCの Windows2000Serverでは、ASPが動きました。(なぜ?) 今のところ、ASP が動く Windows2000Serverと動かないのとでは、 ORACLE8i(8.1.7)が入っているかどうかぐらいの違いしか分らないのですが (ASPが動かないほうにOracleが入ってます。どっちのWin2kも他人のを  借りてるので、まだ詳しく調べれてないですが) なにかこの辺で情報をお持ちの方はいらっしゃらないでしょうか? (ちなみに、OracleのHTTPサーバサービスは停止させています)