Назад | Перейти на главную страницу

В чем разница между настройкой диапазона портов DTC через реестр и dcomcnfg?

Я не понимаю, как настроить диапазон портов для связи 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 прямо