サーバーの 2 番目の DNS 名に MSMQ メッセージを送信できません

サーバーの 2 番目の DNS 名に MSMQ メッセージを送信できません

これを StackOverflow に投稿しましたが、おそらくこの人たちにとってより関連性があると思います。

サーバーの 2 番目の DNS 名に MSMQ メッセージを送信する際に問題が発生しています。同じサーバーの IP を送信すれば問題ありませんが、アーキテクチャ的にはその方向ではありません。MSMQ が受信する名前を気にする理由について何か考えはありますか?

次に例を示します。

サーバー情報: 物理サーバー load-int-01 には、2 番目の IP と DNS 名が関連付けられています。最初の IP/DNS: load-int-01、IP 10.0.10.102 番目の IP/DNS: load-intv、IP10.0.10.20

使用されるキュー パス形式:

FormatName:DIRECT=OS:load-int-01\private$\MyQueue-> 問題なく動作します

FormatName:DIRECT=OS:load-intv\private$\MyQueue-> 次のエラーが返されます:

キューが存在しないか、この操作を実行するための十分な権限がありません

代わりに IP アドレスの使用も試みましたが、両方の IP セットは正常に動作しました。

FormatName:DIRECT=TCP:10.0.10.10\private$\MyQueue-> 問題なく動作しますFormatName:DIRECT=TCP:10.0.10.20\private$\MyQueue-> 問題なく動作します

答え1

逆引きが原因の可能性があります。MSMQ がホスト名情報を取得する方法はわかりませんが、Windows からホスト名を取得し、2 番目の IP の DNS ホスト名を取得していないと、2 番目の IP の逆引きは失敗します。これは、サーバーの実際のホスト名とは異なる 2 番目の DNS ホスト名が返されるためです。

答え2

DNS 経由で解決するには、次のように IP ではなく DNS 名を使用します。どちらも解決されるはずです。

FORMATNAME:Direct=OS:load-intv\private$\MyQueue
FORMATNAME:Direct=OS:load-int-01\private$\MyQueue 

さらに、MSMQサーバー上で次のレジストリスクリプトを実行します(http://support.microsoft.com/kb/306785):

reg.exe ADD HKLM\Software\Microsoft\MSMQ\Parameters /V IgnoreOSNameValidation /t REG_DWORD /d 1 /f

答え3

MSMQ は、おそらく、コンピュータの NetBIOS 名が、そこに到達するために使用された DNS ホスト名と一致することを期待しています。これは、CNAME を使用してドライブを Windows サーバーにマップしようとしたときに発生する問題と同じです。

レジストリ エントリを追加することで、名前をエイリアス化する方法があります。

HKEY_Local_Machine\System\CurrentControlSet\Services\LanmanServer\Parameters
Add Value: OptionalNames REG_SZ with as value the name of the alias 
If you make it a type REG_MULTI_SZ, you can add multiple aliases.

答え4

同じマシン (load-intv のローカル) から送信していますか、それともリモート マシンから送信していますか?

また、load-intv および load-int-01 の DNS クエリを実行すると、実際に返される IP アドレスは何ですか? それぞれ 10.0.10.20 と 10.0.10.10 とおっしゃったものだけですか、それとも追加のものも返されますか?

関係する HOSTS ファイルはありますか? その場合、10.0.10.20 にマップされている他の DNS 名はありますか?

ありがとう、ジョン・ブレイクウェル(MSFT)

関連情報