アプリ版:「スタンプのみでお礼する」機能のリリースについて

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
を使っています。

A 回答 (2件)

msdtc.exeをファイヤーウォールの例外に登録する。


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

この回答への補足

ご回答ありがとうございます。

なにぶん経験が浅いもので、理解できない部分が多いのですが、
上記の点を調べてみたところ、ソース上の、
<% @Transaction=Required %>
タグをコメントアウトすると正常に動作することがわかりました。

どのような原因が考えられるのでしょうか?

msdtc.exeをファイヤーウォールの例外に登録しました。
[トランザクションマネージャ通信]と
[COMセキュリティ]はどこをいじればよいのかわかりません。

もしよろしければ再度の回答をよろしくお願いします。

補足日時:2006/01/18 16:38
    • good
    • 1

><% @Transaction=Required %>


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

この回答への補足

親切なご回答ありがとうございます。

お教えいただいた内容を試してみたところ、そのときは間違いなく実行できたのですが、一度PCの電源を落とした後に再度実行したら、なぜか以前の症状に戻ってしましました。

設定を変更した箇所を確認しましたが、以前の状態に戻っているようなことはありませんでした。
なにか他に原因が考えられるのでしょうか?

補足日時:2006/01/19 17:03
    • good
    • 0
この回答へのお礼

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

お礼日時:2006/01/20 15:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す