我很困惑为DTC通信设置端口范围。 按照此NServiceBus文章中的说明,通过设置端口通过dcomcnfg与通过registryconfiguration它们有什么区别(function上),如本Microsoft支持文章中所述 ? 有什么理由会有不同的行为,或者是完全不同的设置,看起来相似吗?
没有区别*,因为在这两种情况下HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internetregistry项中的Ports值正在修改。 下面的屏幕截图显示了使用DCOMCNFG设置端口范围时发生的registry修改(使用ProcMon捕获):
无论如何,在某个时间点, 微软build议直接编辑registry ,因为DCOMCNFG中有一个错误,这个错误在KB201911中有说明 (注意下面的语句证实了DCOMCNFG实际上是在修改HKLM\SOFTWARE\Microsoft\RPC\Internet\Ports ):
当为协议指定端口范围(如4000-4010)时,写入registry项HKLM \ SOFTWARE \ Microsoft \ RPC \ Internet \ Ports(名为REG_MULTI_SZ)的值为“4000 – 4010”。 在“ – ”之前和之后添加一个空格。
还有另一个微软KB( KB217351 ),它提到了这个错误,并build议如下:
如果使用DCOMCNFG实用程序configuration端口限制,则可能遇到已知的DCOMCNFG错误。 而不是使用DCOMCNFG实用程序,请使用Regedt32.exe来configuration白皮书中所述的端口限制。
*因此,除非您使用依赖于Microsoft COM + 2.0的不受支持的Windows版本,否则上述错误不再适用,您可以自由使用DCOMCNFG或编辑HKLM\SOFTWARE\Microsoft\RPC\Internet\Ports直接