2

問題は、TransactionScope を使用するスタンドアロン Web サーバー (Windows 2003 SP2 - マシン名は TESTAPP で、以下のログで確認できる) に Web サイトがあることです。

SQL Server 2008 R2 マシン (Windows Server 2008) はドメイン内にあります。

スタンドアロン マシンが TransactionScope にヒットすると、失敗します (エラーの詳細が表示されます)。

DB サーバーと同じドメイン内のマシンからコードを実行すると、正常に動作します。

スタンドアロン マシンでは、次のようなエラーが頻繁に発生します。

Error HRESULT E_FAIL has been returned from a call to a COM component.

ただし、MSDTC は正しくセットアップされていますが、ネットワーク サービスを使用しています。DTCPing.exe はどちらの方法でも問題なく動作します。

DB マシンを掘り下げると、次の監査エラーが見つかりました。

アカウントのログオンに失敗しました。

Subject:
Security ID:        NULL SID
Account Name:       -
Account Domain:     -
Logon ID:       0x0

Logon Type:         3

Account For Which Logon Failed:
Security ID:        NULL SID
Account Name:       TESTAPP$
Account Domain:     WORKGROUP

Failure Information:
Failure Reason:     Unknown user name or bad password.
Status:         0xc000006d
Sub Status:     0xc0000064

Network Information:
Workstation Name:   TESTAPP
Source Network Address: 192.168.**.**
Source Port:        1202

スタンドアロン マシンは、独自のマシン名を使用して SQL Server マシンにログオンしようとしています。神は、パスワードとして使用しているものを知っています。

したがって、MSDTC をスタンドアロン マシンからドメイン マシンで動作させることは可能ですか?

PS 可能であれば (別の方法がある場合)、「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\TurnOffRpcSecurity」レジストリ キーに影響を与えたくありません。

PPS 可能であれば、MSDTC で相互認証を要求したままにしたいと思います (可能な解決策は、MSDTC を認証なしを要求するように設定することですが、これが完全に必要かどうかはわかりません)。

それについての奇妙なことは、テスト用のスタンドアロン Web サーバーをドメイン DB サーバーに使用していることです。:S

PPS ファイアウォールは両方のマシンでオフになっています。

4

2 に答える 2

1

うーん、もっと前にライブシステムの複製を使ってテストをセットアップしてみたら…

相互認証をオフにして認証なしに設定するとすぐに、それは魅力的に機能しました。

PS No Auth は、MSDTC マシン/ポートを外部に開放しない環境では、あまりセキュリティ ホールにはなりません。msdtc セキュリティ構成で unsecure rpc no authentication required 設定を使用することの潜在的なリスクを参照してください

于 2013-04-29T09:54:33.650 に答える