web-dev-qa-db-ja.com

レジストリとdcomcnfgを介してDTCポート範囲を設定することの違いは何ですか?

DTC通信のポート範囲の設定について混乱しています。 このNServiceBusの記事 で説明されているようにdcomcnfgを介してポートを設定することと、この Microsoftサポートの記事 で説明されているようにレジストリを介してポートを構成することの違いは何ですか?動作が異なる理由はありますか、それとも同じように見えるこれらの完全に異なる設定ですか?

2
Rob

どちらの場合も、HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internetレジストリキーの下のPorts値が変更されているため、違いはありません*。以下のスクリーンショットは、DCOMCNFGを使用してポート範囲を設定するときに発生するレジストリの変更( ProcMon を使用してキャプチャ)を示しています。

DCOMCNFG Registry Port Changes

とにかく、ある時点で、 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を直接編集することができます。

1