Необычная проблема с подключением TCP и Windows Server 2022 странное поведениеC#

Место общения программистов C#
Ответить
Anonymous
 Необычная проблема с подключением TCP и Windows Server 2022 странное поведение

Сообщение Anonymous »

Прошлой ночью у меня была еще одна неудачная попытка перенести одну из машин на более новую версию Windows Server.
Вся система состоит из нескольких виртуальных машин, использующих стандарт Windows Server 2012R2. Каждая машина размещает веб -приложения или службы Windows, все написанные в C#. < /P>
Мне удалось перенести большинство из них на стандарт Windows Server 2022 без каких -либо проблем, но у меня все еще есть необычные проблемы с одной из машин.
На этой конкретной машине есть услуга, ответственная за связь с различными типами устройств. Устройства устанавливают соединение TCP, поддерживают их и при необходимости отправляют данные. Обычно число этих соединений составляет около 20 тыс. Для этой единственной машины. < /P>
При первой неудачной попытке возникла проблема, что устройства не могли подключиться, Wireshark показал много входящих пакетов SYN, но не было исходящих пакетов ACK, и, наконец, только несколько соединений были установлены от туннеля IPSEC к одному клиенту. Все соединения от частного APN, поступающего через второй туннель, к оператору GSM, и тех, где устройства отправляют данные из публичного APN в общественный интерфейс, отсутствовали. Необычным симптомом был, что после нескольких минут вставания Windows перестала сотрудничать. Wireshark не смог запустить и повесить во время инициализации или регистрации компонентов, и уже начал Wireshark перестал захватывать новые пакеты и не отображал какие -либо пакеты. Менеджер задач также имел очень странное поведение, вкладка «Процесс» по -прежнему показал то же использование ОЗУ и ЦП, как будто она не смогла обновить данные из счетчиков производительности, и вкладка «Детали» была пустой. Оказалось, что таблица маршрутизации была изменена, но я не знаю, было ли это важно, пока устройства были инициирующей стороной. Я также нашел изменения в конфигурации TCP:

Код: Выделить всё

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]< /code>
"TcpNumConnections"=dword:00fffffe< /code>
"MaxUserPort"=dword:0000fffe< /code>
"TcpTimedWaitDelay"=dword:0000001e< /code>
`"TcpMaxDataRetransmissions"=dword:00000005``
Increased connection limit, increased port range and shortened TIME_WAIT time after closing the connection, the number of retransmissions is probably 5 by default.
I've made registry and routing table changes on the new machine and the devices started to connect, reaching a reasonable number of connection according to night hours.
When the key service was working, I started to run others services hosted on the same machine and again strange problems appeared.
Each service hits our license server (located on other machine) at the start and when dumping stacks I saw that all of them were hanging at:
System.Net.Dns.TryGetAddrInfo (Source unavailable)< /code>
System.Net.Dns.TryInternalResolve (Source unavailable)< /code>
System.Net.ServicePoint.GetIPAddressInfoList (Source unavailable)< /code>
System.Net.ServicePoint.ConnectSocketInternal (Source unavailable)< /code>
System.Net.ServicePoint.GetConnection (Source unavailable)< /code>
System.Net.PooledStream.Activate (Source unavailable)< /code>
System.Net.Connection.CompleteStartConnection (Source unavailable)< /code>
System.Net.Connection.CompleteStartRequest (Source unavailable)< /code>
System.Net.Connection.SubmitRequest (Source unavailable)

Файлы конфигурации используют доменные имена, но в файле хоста определены статические сопоставления DNS. Основная служба, ответственная за связь с устройством, также попадает на сервер лицензий во время запуска и не имела никаких проблем с ним. Я проверил, что Telnet смог подключиться к серверу лицензий с помощью IP -адреса, но он не смог подключиться с помощью доменного имени. Команда Ping также не смогла разрешить имя. Я быстро подготовил версию, которая обходит проверку лицензии, а затем сервисы висели еще один шаг, пытаясь подключиться к SQL Server на другой машине:

Код: Выделить всё

[Internal thisFrame, 'M-->U', ::SNIOpenSyncExWrapper] (Source unavailable)< /code>
SNINativeMethodWrapper.SNIOpenSyncEx (Source unavailable)< /code>
System.Data.SqlClient.SNIHandle..ctor (Source unavailable)< /code>
System.Data.SqlClient.TdsParserStateObject.CreatePhysicalSNIHandle (Source unavailable)< /code>
System.Data.SqlClient.TdsParser.Connect (Source unavailable)< /code>
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin (Source unavailable)< /code>
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover (Source unavailable)< /code>
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist (Source unavailable)< /code>
System.Data.SqlClient.SqlInternalConnectionTds..ctor (Source unavailable)< /code>
System.Data.SqlClient.SqlConnectionFactory.CreateConnection (Source unavailable)< /code>
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection (Source unavailable)< /code>
System.Data.ProviderBase.DbConnectionPool.CreateObject (Source unavailable)< /code>
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest (Source unavailable)< /code>
System.Data.ProviderBase.DbConnectionPool.TryGetConnection (Source unavailable)< /code>
System.Data.ProviderBase.DbConnectionPool.TryGetConnection (Source unavailable)

Что было интересно, так это то, что эта ключевая служба, в то же время не имела проблем с подключением SQL и вставкой в ​​тот же экземпляр SQL Server и сгенерированный трафик около 60 тыс. Вставки в минуту. Когда я развернул новую версию с обходом лицензий, я не смог остановить услуги от менеджера задач или от Service Snap-In, даже убив процесс из списка, бросил некоторую ошибку. Я смог убить процесс только при использовании внешнего инструмента (Sysinternals Process Explorer). < /P>
Я все еще подозреваю, что проблема заключается в конфигурации сети, но у меня нет идей.
Во время миграции я меняю IPS -адреса машин с уровня панели VMware, а также с уровня Windows, а затем, а затем я разбираюсь в обоих адресах. В то же время, эта новая машина работает нормально, и в ней нет проблем, если она не получает трафик от устройств.
Я доступ к мониторингу Zabbix, поэтому я также проверил, если нет проблем с насыщением оперативной памяти или процессора, но мы используем только 20% доступных ресурсов, и, в отличие от менеджера задач, Zabbix показал, что ресурс инвестировал, что это было изменено. У нас очень короткое окно обслуживания, а следующее будет доступно в следующем месяце ...

Подробнее здесь: https://stackoverflow.com/questions/796 ... e-behavior
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»