Я не понимаю, как настроить диапазон портов для связи DTC. В чем разница (функционально) при настройке портов через dcomcnfg, как описано в эта статья NServiceBus по сравнению с их настройкой через реестр, как описано в этом Статья службы поддержки Microsoft? Есть ли причина, по которой можно вести себя по-другому, или это совершенно разные настройки, которые кажутся похожими?
Разницы нет *, так как в обоих случаях Ports
стоимость ниже HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc\Internet
Ключ реестра изменяется. На снимке экрана ниже показано изменение реестра (снятое с помощью ProcMon), что происходит при установке диапазона портов с помощью DCOMCNFG:
Так или иначе, в какой-то момент Microsoft рекомендовала вместо этого редактировать реестр напрямую, из-за ошибки внутри DCOMCNFG, которая описана в 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 для настройки ограничений порта, как описано в техническом документе.
* Следовательно, если вы не используете неподдерживаемую версию Windows, основанную на Microsoft COM + 2.0, ошибка, упомянутая выше, больше не применима, и вы можете либо использовать DCOMCNFG, либо редактировать HKLM\SOFTWARE\Microsoft\RPC\Internet\Ports
прямо