1

まず、これが可能かどうかはわかりませんが、私のシナリオについて説明します。

一連のWCFサービス、SQL Server2008データベースがすべてWindowsServer2008で実行されています。LANに接続している場合、これらはすべて正常に機能しますが、このボックスをデモに使用します。スタンドアロンモードで動作させるため(つまり、どのネットワークにも接続されていない場合)。

スタンドアロンモードでこれを実行しようとすると、SQL Serverデータベースが機能しているように見えます(データを取得できます)。ただし、WCFサービスからトランザクションスコープ内にデータを挿入しようとすると、クライアント側で通信障害の例外が発生します。Windowsのイベントログを確認すると、「システムとの安全な接続を確立しようとしたときに、MSDTCでエラーが発生しました」というメッセージが表示されます。

これを機能させるためにDTCに何を設定する必要があるかを誰かが知っていますか

4

2 に答える 2

1

何が起こったのかという文脈では、エラーは今や完全に理にかなっています。

ここでの問題は、サーバーにデプロイされたアプリケーションの1つで、このサーバーからアクセスできないハードコードされたDNS名を参照していたことです(スタンドアロンであるため)。私の理解では、DTCはトランザクションをフローさせようとしましたが、コンピューター名からアドレスを確立できず、そこで爆破されました。アプリケーションはWCFサービスであったため、エラーはかなりわかりやすくなりましたが、最終的にはサービストレースをオンにしてトレースしました。

同様のエラーが発生した他の人に役立つことを願っています。ハードコードされた値に注意してください。

于 2009-11-20T05:26:21.627 に答える
0

これは、WCFサービスがデータベースへの接続に使用する接続文字列に関係している可能性があります。DataSource=を使用してみてください。またはDataSource= localhost、ループバックネットワークアダプター(127.0.0.1)を使用していることを確認します。

Windowsマシンでファイアウォールが実行されていますか?サーバーはドメインの一部ですか?

また、MS DTC(Component Services MMCプラグイン)のセキュリティ設定ダイアログを確認することをお勧めします。「トランザクションマネージャ通信」を「認証不要」に設定し、他のほとんどのオプションをベースラインとしてチェックしてみてください。

于 2009-08-13T07:47:25.970 に答える