
これを StackOverflow に投稿しましたが、おそらくこの人たちにとってより関連性があると思います。
サーバーの 2 番目の DNS 名に MSMQ メッセージを送信する際に問題が発生しています。同じサーバーの IP を送信すれば問題ありませんが、アーキテクチャ的にはその方向ではありません。MSMQ が受信する名前を気にする理由について何か考えはありますか?
次に例を示します。
サーバー情報: 物理サーバー load-int-01 には、2 番目の IP と DNS 名が関連付けられています。最初の IP/DNS: load-int-01
、IP 10.0.10.10
2 番目の 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)