DTC通信のポート範囲の設定について混乱しています。 このNServiceBusの記事 で説明されているようにdcomcnfgを介してポートを設定することと、この Microsoftサポートの記事 で説明されているようにレジストリを介してポートを構成することの違いは何ですか?動作が異なる理由はありますか、それとも同じように見えるこれらの完全に異なる設定ですか?
どちらの場合も、HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internet
レジストリキーの下のPorts
値が変更されているため、違いはありません*。以下のスクリーンショットは、DCOMCNFGを使用してポート範囲を設定するときに発生するレジストリの変更( ProcMon を使用してキャプチャ)を示しています。
とにかく、ある時点で、 Microsoftは代わりにレジストリを直接編集することをお勧めしますKB201911 (以下のステートメントはDCOMCNFGを確認することに注意してください)実際にはHKLM\SOFTWARE\Microsoft\RPC\Internet\Ports
)を変更しています:
4000-4010などのプロトコルにポート範囲が指定されている場合、レジストリキーHKLM\SOFTWARE\Microsoft\RPC\Internet\Ports(REG_MULTI_SZという名前)に書き込まれる値は「4000-4010」です。 「-」の前後にスペースが追加されます。
このバグを参照し、次のことを示唆する別のMicrosoft KB( KB217351 )があります。
DCOMCNFGユーティリティーを使用してポート制限を構成した場合、既知のDCOMCNFGバグが発生している可能性があります。ホワイトペーパーで説明されているように、DCOMCNFGユーティリティを使用するのではなく、Regedt32.exeを使用してポート制限を構成します。
*したがって、Microsoft COM + 2.0に依存するサポートされていないバージョンのWindowsを使用している場合を除き、上記のバグは適用されなくなり、DCOMCNFGを使用するか、HKLM\SOFTWARE\Microsoft\RPC\Internet\Ports
を直接編集することができます。