Ошибка при задании адреса или порта сокета
Так вот, после установки сервера стала выпадать упомянутая в названии темы ошибка. Сразу, как обычно, подумал - кривая обнова, надо поставить старую. Но, после установки старой, проблема никуда не исчезла. Да, кстати, при загрузке платформы с самого сервака проблем не возникало. Ошибка вылетала при запуске с клиентских компьютеров.
После двух часов плевков, матерков и ударов головой о стену решил произвести выгрузку ИБ (т.к. при запуске с сервера проблем не было, то выполнить это не составило труда) и перекинуть их с Microsoft SQL в файловый вариант, чтобы бухгалтерия не простаивала.
Далее, в спокойной обстановке, начал разбираться с ситуацией. Пообщавшись с гуглом, понял, что толковых советов в инете нет. То предлагают поотключать все фаерволы на сервере (что для сервера данных смерти подобно), то еще какие нибудь глупости - типа переустановки всей системы.
В общем, пришлось искать решение самому.
Немного поэкспериментировав с кластером серверов, решил просмотреть правила для входящих подключений в брандмауэре:
Нашел правило "Разрешение подключения к Кластеру 1С". После чего, побегав по закладкам данного правила, остановился на закладке "Дополнительно":
И тут меня осенило - на всех компьютерах нашей сети установлены профили "Публичный", а в правиле как раз на нем нет галочки. После того как я отметил этот профиль, правило стало распространяться и на него и, соответственно, все заработало.
Признаюсь честно, почему возникла такая проблема - так и не понял, возможно, обновление добавляет какие то коррективы в правила.
Кстати, побегав по сети, я понял, что данная проблема актуальна не только для описанного мной случая. Ошибка 10060 во всех случаях связана с невозможностью выполнить соединение с сервером. Таким образом можно выделить несколько основных причин:
- это проблемы с самой сетью (тупо нет связи);
- неверно заданы параметры соединения;
- соединение блокирует один из фаерволов либо антивирус (нужно проверить правила для входящих подключений, а в антивирусе, возможно, следует добавить необходимые порты либо IP адреса, с которых выполняется подключение в исключения);
- ну и последний вариант - проверьте, а запущено ли вообще серверное программное обеспечение.
Устранение неполадок нехватки портов
Ключ — определить, какой процесс или приложение использует все порты. Ниже приведены некоторые средства, которые можно использовать для изоляции одного процесса.
Метод 2
Если метод 1 не помогает определить процесс (до Windows 10 и Windows Server 2012 R2), ознакомьтесь с диспетчером задач:
Добавьте столбец с именем "handles" в разделе details/processes.
Отсортируйте дескриптора столбцов, чтобы определить процесс с наибольшим количеством дескриптора. Обычно процесс с дескрипторами больше 3000 может быть злоумышленником, за исключением таких процессов, как System, lsass.exe, store.exe, sqlsvr.exe.
Если любой другой процесс, кроме этих процессов, имеет большее число, остановите этот процесс, а затем попробуйте войти с помощью учетных данных домена и проверить, успешно ли он выполнен.
Специальные предложения
Спасибо за статью, были похожие ошибки 10053 и 10054 на платформе 8.2. Удалось решить проблему после установки доступа.
Очень часто за новыми релизами начинаешь наблюдать разного рода странности, например в виде игнорирования процедуры регистрации компоненты COM-соединения. Тут соответственно забыли написать правила разрешения в брэндмауэре.
Откровенно говоря что-то странное у 1С творится. Одно только неимоверное количество обновлений типовых конфигураций в этом квартале чего стоит.
Но пытливый ум все победит. Спасибо за статью ;)
(0) ну во-первых однозначный "лайк", как выразился Вячеслав. Но меня тут же взволновал другой вопрос.
* то что разрешения на кластер выставлены НЕ для публичного профиля - это понятно. Как говорят наши специалисты по ИТ безопасности между серверами приложений и клиентами приложений весь трафик должен идти через "частные сети", то есть такие сети, в которых существуют средства обеспечения безопасности (причем безопасники всегда хотят чтобы это был hardware firewall). Наши администраторы сделали предположение, что кто-то ознакомился со стандартами ИТ безопасности и включил это в настройку.
* но вот то, что у вас на компьютерах включен "публичный" профиль - вот это вызывает как минимум вопросы .
Если кластер развернут на облачных площадках и нужно обеспечить доступ из любой сети - то вопрос "к шифрованным тунелям" и облачным AD от того же Azure (я так понимаю стэк то Microsoft).
P.S. У меня наверное в связи с этим напрашивается совет - присмотрелись бы вы к администрированию: чувствую там есть что донастроить/улучшить.
и еще одно - Acces violation at address 00502CCF in module 'HASyn.exe'. Write of address 0FA5C000.
Windows socket error 10022: ошибка при создании сервера
при нажатии на кнопку, одна строчка выполняется ServerSocket1->Active=True; и ошибку выдает.
Syntax error при запуске программы
привет всем. нужна помощь с фокс про. создаю exe файл. при запуске пишет syntax error. есть нажать.
На чужом компьютере при запуске программы вылезает ошибка connection error
так же ошибка adot1: cannot perform this operation on a closed dataset. главное на моем ноутбуке.
Ошибка при запуске игры: dll is either not designed to run on Windows or it contains an error
Здравствуйте! У меня с такая вот ошибка, которой и озаглавлен топик, а именно - ".dll is either.
Перевод: адрес уже используется.
Описание: обычно разрешается только одно использование адреса сокета (протокол/IP-адрес/порт). Эта ошибка возникает, если программа пытается выполнить привязку сокета к IP-адрес или порт, который уже был использован для существующего сокета socket, который был закрыт неправильно, (Wsapiref_6vzm.asp), или сокет в процессе закрытия. Программы сервера привязать несколько разъемов на тот же номер порта рассмотрите возможность использования setsockopt (Wsapiref_94aa.asp)(SO_REUSEADDR). Клиентские программы обычно не требуется вызывать все привязки, подключения (Wsapiref_8m7m.asp) автоматически выбирает неиспользуемый порт. При вызове bind с адресом подстановочный знак (включающих ADDR_ANY) WSAEADDRINUSE ошибка может быть отложена до определенного адреса фиксируется. Это может произойти при вызове другой функции, которая происходит более поздних, включая подключение, прослушивания, WSAConnect или WSAJoinLeaf.
Посмотрите. Будет ли наблюдаться эта ошибка при запуске программы в Безопасном режиме с загрузкой сетевых драйверов ?
anton877, Хм. то что в безопасном выскакивает эта ошибка - странно.
Суть этой ошибки в том,что несколько программ используют один и тот же порт/протокол.
Тут 2 варианта:
1. (простой) Провести диагностику служб и автозагрузки.
Если после отключения сторонних служб/элементом автозагрузки,при запуске программы ошибка больше не выскакивает,то проблема заключается в одной из отключённых сторонних служб или элементе автозагрузки.
Далее действуйте методом «половинного деления». Включите половину служб и снова перезагрузитесь. Если проблема не появляется, причина в оставшихся отключенных службах. Если проблема воспроизводится, причина во включенных службах — отключите половину из них и снова перезагрузитесь.
Действуя таким образом, вы сможете выявить службу, являющуюся причиной проблемы, и определить программу, которой она принадлежит. Далее можно порекомендовать лишь обновление программы до последней версии или ее удаление.
Посмотрите нет ли в списке процессов (PID),которые используют один и тот же IP-адрес. Далее запустите диспетчер задач - > вкладка Процессы -> Вид -> Выбрать столбцы -> отметьте ИД процесса и нажмите ОК -> далее с помощью номера PID вы найдёте процессы,кторые используют одни и те же IP-адреса.
Протоколы TCP и UDP работают на основе номеров портов, используемых для установления подключения. Любому приложению или службе, для которых необходимо установить подключение TCP/UDP, потребуется порт на его стороне.
Существует два типа портов:
В сценарии, когда один и тот же браузер создает много подключений к нескольким веб-сайтам, для любого нового подключения, которое пытается установить браузер, используется временный порт. Через некоторое время вы заметите, что подключения будут завершаться сбоем, и одной из высокой вероятностью этого сбоя будет то, что браузер использовал все доступные порты для подключения за пределами сети, и любая новая попытка установить подключение завершится ошибкой, так как больше нет доступных портов. При использовании всех портов на компьютере мы используем его как нехватку портов.
Метод 3
Если диспетчер задач не помогает определить процесс, используйте обозреватель процессов для изучения проблемы.
Действия по использованию обозревателя процессов:
Скачайте обозреватель процессов и запустите его с повышенными привилегиями.
ALT+ щелкните заголовок столбца, выберите " Выбрать столбцы" и **** на вкладке "Производительность процесса" добавьте число дескрипторов.
Выберите "Вид\ Показать нижнюю панель".
Выберите представление \ Представление нижней панели \ Дескриптора.
Щелкните столбец "Дескриптора ", чтобы отсортировать его по значению.
Изучите процессы с более высоким числом дескриптора, чем остальные (скорее всего, будет более 10 000, если вы не сможете установить исходящие подключения).
Щелкните, чтобы выделить один из процессов с высоким числом дескриптора.
В нижней области дескрипторами, перечисленными ниже, являются сокеты. (Сокеты технически являются дескрипторами файлов).
Некоторые из них являются обычными, а большие — нет (от сотен до тысяч). Закройте указанный процесс. Если это приведет к восстановлению исходящих подключений, вы еще раз докакажите, что причиной является приложение. Обратитесь к поставщику этого приложения.
Наконец, если описанные выше методы не помогли изолировать процесс, мы рекомендуем собрать полный дамп памяти компьютера в состоянии проблемы. Дамп сообщит, какой процесс имеет максимальное количество дескриптора.
В качестве обходного решения перезагрузка компьютера приведет к его нормальному состоянию и поможет устранить проблему в настоящее время. Однако если перезагрузка нецелесообразно, вы также можете увеличить количество портов на компьютере с помощью следующих команд:
Эта команда задает диапазон динамических портов, который будет начинаться с порта 10000 и до порта 10999 (1000 портов). Минимальный диапазон портов, который можно задать, — 255. Минимальный начальный порт, который можно задать, — 1025. Максимальный конечный порт (в зависимости от заданного диапазона) не может превышать 65535.
Обратите внимание, что увеличение диапазона динамических портов не является постоянным решением, а только временным. Необходимо отслеживать, какие процессы и процессоры потребляют максимальное количество портов, и устранять неполадки с точки зрения этого процесса, чтобы понять, почему он использует такое большое количество портов.
Для Windows 7 и Windows Server 2008 R2 можно использовать приведенный ниже скрипт для сбора выходных данных netstat с определенной частотой. В выходных данных можно увидеть тенденцию использования портов.
Сервер 1С находится на одном сервере, пользователи подключаются с другого сервера по тонкому клиенту.
Столкнулись с проблемой: после какого-то кол-ва пользователей зашедших в базу, новых перестает пускать - просто падает платформа. Началось внезапно, ничего не меняли, ни конфигурацию, ни платформу, ни сервер. На текущей платформе проработали больше месяца нормально. Через технологический журнал на клиенте выцепил ошибку, с которой падает платформа "Обычно разрешается одно использование адреса сокета (протокол/сетевой адрес/порт)". Ошибку это возвращает платформе винда, везде пишут, что проблема в том, что не хватает динамических портов, которые можно расширить через реестр, но это не помогло.
Через netstat -ano на сервере удаленных рабочих столов, откуда подключаются пользователи видно, что заняты все порты с 1560 по 1591 тонкими клиентами с состоянием LISTENING, то есть тонкий клиент зарезервировал порт 1560 и слушает его. При этом этот же клиент с таким же PID'ом занимает и нормальный рандомный порт, так же как и многие другие клиенты сидящие на рандомных портах типа 45434. Заметили, что новые пользователи не могут зайти в базу, когда все порты 1560-1591 заняты. Если убить любого тонкого клиента, который занимает порт в этом диапазоне и порт освобождается, то новый пользователь может зайти в базу.
Так же, когда все эти порты заняты, не получается запустить отладку из конфигуратора, ругается на "Для выполнения отладки необходимо включить поддержку сетевого протокола TCP/IP" - что тоже описано в инете как проблема занятых портов.
Не понятно, зачем тонкому клиенту на сервере удаленных рабочих столов занимать эти порты, ведь используются они сервером 1С для рабочих процессов. И почему когда свободных портов нет на РДП сервере, клиент не может подключиться к серверу 1С. Но часть клиентов спокойно висят на рандомных портах типа 45434. Такое ощущение, что при коннекте, клиент все таки занимает какой-то из портов в этом диапазоне, а после этого его перекидывает на любой свободный до 65535, но эти порты из диапазона 1560-1591 не успевают освободиться и продолжают висеть занятыми. Но не понятно почему в состоянии LISTENING.
Объясните, по какому принципу клиент занимает порты и можно ли это как-то где-то настроить? То, что происходит в описанной ситуации это какой-то сбой либо некорректная настройка и достаточно в настройках службы 1С указать бОльший пул портов? Но никогда не слышал, чтобы в базах, где работает большое кол-во пользователей, увеличивали диапазон портов для рабочих процессов на сервере 1С.
В первый раз появилось на платформе 8.3.14.1854, после этого откатились на 8.3.12.1685, на которой были несколько месяцев, ситуация не изменилась.
Нашел в чем была причина, очень все нетривиально оказалось ) У нас в одном документе добавлено очень много доп.реквизитов, а чтобы они не подряд располагались на форме, была изменена форма в пользовательском режиме, красиво и по группам расположили доп.реквизиты.
Чтобы эта настройка применилась у всех, копировали все настройки эталонного пользователя другим пользователям. Видимо, в момент копирования настроек эталонного пользователя, у него была включена отладка, которая так и прилетела всем. Ну и в какой-то момент пользователей просто стало слишком много и проблема проявилась.
Соответственно решение это в личных настройках пользователей очистить настройку из закладки Прочие настройки - Прочие настройки. Ну и переписать копирование настроек, если это делается автоматом.
Полагаю, некоторые коллеги уже оказывались в ситуации, когда отладка внезапно пропадала, и различные "шаманские" методики (переустановка платформы, чистка локального кэша и прочее) результата не давали. Опишу свой опыт по выявлению и устранению причины.
Преамбула
Данная статья содержит основные моменты из моей публикации. Рассчитываю, что эта информация поможет оказавшимся в подобной ситуации решить проблему. Или хотя бы послужит примером диагностики в конкретной ситуации.
Начальное состояние
Периодические отваливается отладка. Основные подозреваемые - брандмауэр и антивирус выключены.
Анализ
Текущий порт отлачика tcp://srv1c:1562.
netstat -naot 1 | find "1562" при запуске сеанса отладки показывает наличие состояний SYN_SENT.
Настроен полный технологический журнал, поскольку заранее неизвестны события, содержащие необходимую информацию. Для сбора данных по клиентским сеансам моего пользователя файл настроек расположен в %UserProfile%\AppData\Local\1C\1cv8\conf
Значимые события технологического журнала клиента, собранного с момента запуска сеанса отладки до момента прекращения появления состояний SYN_SENT:
При соединение по TCP/IP открывается сокет и выбирается динамический порт. По умолчанию, диапазон динамических портов от 1024 по 5000. Увеличиваем до максимума.
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Value: MaxUserPort
Data Type: REG_DWORD
Range: 5000 to 65534
Default value: 5000
Recommended value: 65534
Когда соединение TCP закрывается, то сокет сразу не освобождается, а переходит в статус TIME_WAIT и ресурсы освободятся только через определённое время. По умолчанию, только через 4 минуты. Снизим это время до минимума - 30 секунд.
Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Value: TcpTimedWaitDelay
Data Type: REG_DWORD
Range: 30 to 300
Default value: 240
Recommended value: 30
Отключение автотюнинга tcp протокола:
netsh int tcp set global autotuninglevel=disabled
Результат
Мониторинг сервера в течении нескольких дней показал, что после проведенных изменений даже при большом количестве сессий 1С отладка перестала отваливаться.
Специальные предложения
Я так понимаю, что это рекомендации к клиент-серверной версии, а что делать при такой же беде с файловой базой?
Однажды, пропала отладка для всех имеющихся баз на локальном пк, чистка кэша, отключение антивируса, брендмауэра не помогла. Впоследствии отладка сама включилась через несколько дней, из значимых событий на пк в эти дни было только обновление Skype.
Единственное, что смущает - попадание в зарезервированный диапазон динамических (эфемерных ) портов 49152 - 65535.
Может лучше сначала Range: 5000 to 49000 ?
(8) я нашел следующие разъяснения насчет диапазонов портов:
1. Номер порта выделяется для каждой сетевой службы, чтоб они работали независимо;
2. Порт назначается временно и только на время соединения. После завершения сеанса соединения порт снова становится свободен для использования, хотя в большинстве реализаций просто происходит увеличение на единицу номера последнего использованного порта вплоть до исчерпания всего диапазона эфемерных портов.
3. Номер порта - это абстракция, относящаяся к транспортному уровню (TCP & UDP), более низкие уровни (IP, ICMP, IGMP) - не имеют такой абстракции;
4. "Размещаются" порты в стеке TCP/IP, т.е. в реализованной в составе ОС части, т.е. программисту это не важно;
5. Порты для UDP & TCP - совершенно разные пространства, т.е. 21 порт UDP и 21 порт TCP - это 2 совершенно разные сущности.
6. Наконец, порты TCP/UDP подразделяются на "хорошо известные порты" (номера 0 - 1023), "динамические" (из диапазона 1024 - 49151), и "эфемерные" (49152 - 65535). Хорошо известные порты приписаны стандартным службам: telnet, ftp etc. и использоваться не должны (для других целей). Динамические порты - должны регистрироваться в международном комитете для использования новыми службами широкого применения. Эфемерные порты - это порты "оставленные" разработчикам для использования в своих частных задачах (где попало. ). Никаких гарантий об неконфликтности эфемерных портов в условиях эксплуатации, естественно, не даётся.
В этом контексте использование "эфемерного" диапазона не должно привести к каким то проблемам.
Можно более подробно разобрать, что вас смущает. Полагаю, полезно будет для всех.
Странно, у меня по умолчанию такие параметры установлены (только в шестнадцатиричной системе исчисления). Win 7 x64.
Может, стоит уточнить для каких ОС этот рецепт предназначен.
(10) по умолчанию этих параметров в соответствующих разделах реестра нет. В вашем случае, когда добавляли эти параметры, перед вводом значений не переключили предварительно систему исчисления в десятичную. При создании в форме ввода значения параметра по умолчанию установлена шестнадцатиричная, что объясняет ваши значения.
Применил параметры реестра, всё равно отладка не работает. Отлаживаю вебсервис (на клиенте и сервере отладка работает). На локальном компьютере iis и конфигуратор, на сервере сервер 1с и sql. Фаерволы, антивирусы отключены. В публикации прописал адрес отладки (в разных вариациях пробовал) из настроек отладки. Автоматическое подключение вебсервисов стоит. В тех журнале на клиенте такое (см скрин). Делал netsh winsock reset - не помогло. Есть какие-то мысли?
P.S. Отладка вчера работала, а сегодня отвалилась. Перезагружал и сервер и свою машину по нескольку раз, ничего не помогает.
(13) Да, я делал так, как было в инструкции, но это всё равно не помогло. В итоге, после n-ной попытки переопубликации вебсервиса и перезапуска его, отладка удивительным образом заработала. Шайтан.
Текущий порт отлачика tcp://srv1c:1562.
Как поменять текущий порт отладчика ?
(15) как минимум он устанавливается автоматически отладчиком. Иначе только менять диапазон в настройках "Конфигуратор" - "Отладка" - "Подключение". В открывшейся форме "Параметры отладки" кнопка снизу слева "Настройка" - регулировка диапазона используемых для отладки портов. Но какой порт платформа займет в каждом отдельном случае - ее усмотрение, будет занимать по порядку не занятые.
Сколько же я мучался.. и на всех последних платформах.
Решение принял другое - переход на отладку по http протоколу. Ничего не "отваливается".
Жаль, что раньше эту статью не увидел.
Диапазон динамических портов по умолчанию для TCP/IP
В соответствии с рекомендациями IANA корпорация Майкрософт увеличила диапазон динамических портов клиента для исходящих подключений. Новый начальный порт по умолчанию — 49152, а новый конечный порт по умолчанию — 65535. Это увеличение является изменением конфигурации более ранних версий Windows, которые использовали диапазон портов по умолчанию от 1025 до 5000.
Динамический диапазон портов на компьютере можно просмотреть с помощью следующих команд Netsh:
- netsh int ipv4 show dynamicport tcp
- netsh int ipv4 show dynamicport udp
- netsh int ipv6 show dynamicport tcp
- netsh int ipv6 show dynamicport udp
Диапазон задается отдельно для каждого транспорта (TCP или UDP). Диапазон портов теперь является диапазоном, который имеет начальную и конечную точки. Клиенты Майкрософт, которые развертывают серверы под управлением Windows Server, могут иметь проблемы, влияющие на связь RPC между серверами, если брандмауэры используются во внутренней сети. В таких ситуациях рекомендуется перенастроить брандмауэры, чтобы разрешить трафик между серверами в диапазоне динамических портов от 49152 до 65535. Этот диапазон является дополнением к известным портам, используемым службами и приложениями. Кроме того, диапазон портов, используемый серверами, можно изменить на каждом сервере. Этот диапазон можно изменить с помощью команды netsh, как показано ниже. Приведенная выше команда задает динамический диапазон портов для TCP.
Начальный порт — это число, а общее число портов — диапазон. Ниже приведены примеры команд.
- netsh int ipv4 set dynamicport tcp start=10000 num=1000
- netsh int ipv4 set dynamicport udp start=10000 num=1000
- netsh int ipv6 set dynamicport tcp start=10000 num=1000
- netsh int ipv6 set dynamicport udp start=10000 num=1000
Эти примеры команд задают динамический диапазон портов, который должен начинаться с порта 10000 и до порта 10999 (1000 портов). Минимальный диапазон портов, который можно задать, — 255. Минимальный начальный порт, который можно задать, — 1025. Максимальный конечный порт (в зависимости от заданного диапазона) не может превышать 65535. Чтобы дублировать поведение по умолчанию Windows Server 2003, используйте 1025 в качестве начального порта, а затем используйте 3976 в качестве диапазона для TCP и UDP. Этот шаблон использования приводит к началу порта 1025 и порту окончания 5000.
В частности, для исходящих подключений в качестве входящих подключений не требуется временный порт для принятия подключений.
Так как исходящие подключения начинают завершаться сбоем, вы увидите множество экземпляров следующих поведений:
Не удается войти на компьютер с учетными данными домена, однако вход с помощью локальной учетной записи работает. Для входа в домен потребуется обратиться к контроллеру домена для проверки подлинности, что снова является исходящим подключением. Если у вас есть учетные данные кэша, вход в домен может по-прежнему работать.
групповая политика обновлений:
Общие папки недоступны:
RDP с затронутого сервера завершается ошибкой:
Любое другое приложение, работающее на компьютере, начнет выдать ошибки
Перезагрузка сервера временно устраните проблему, но по истечении определенного периода времени все симптомы будут устранены.
Если вы подозреваете, что компьютер находится в состоянии нехватки портов:
Попробуйте установить исходящее подключение. На сервере или компьютере получите доступ к удаленному ресурсу или попробуйте подключиться по протоколу RDP к другому серверу или telnet к серверу через порт. Если исходящее подключение завершается сбоем для всех этих параметров, перейдите к следующему шагу.
Откройте средство просмотра событий и в системных журналах найдите события, которые четко указывают текущее состояние:
Код события 4227
Код события 4231
Соберите netstat -anob выходные данные с сервера. В выходных данных netstat будет показано огромное количество записей для TIME_WAIT для одного piD.
После корректного закрытия или внезапного закрытия сеанса через 4 минуты (по умолчанию) порт, используемый процессом или приложением, будет освобожден обратно в доступный пул. В течение 4 минут состояние TCP-подключения будет TIME_WAIT состоянии. В ситуации, когда вы подозреваете нехватку портов, приложение или процесс не смогут освободить все использованные порты и останутся в TIME_WAIT состоянии.
Вы также можете увидеть CLOSE_WAIT состояния в тех же выходных данных. однако CLOSE_WAIT состоянием является состояние, когда одна сторона однорангового узла TCP не имеет больше данных для отправки (отправлено FIN), но может получать данные с другого конца. Это состояние не обязательно указывает на нехватку портов.
Наличие огромных подключений TIME_WAIT состоянии не всегда указывает на то, что сервер в настоящее время не имеет портов, если не проверены первые две точки. Наличие большого TIME_WAIT подключения означает, что процесс создает много TCP-подключений и в конечном итоге может привести к нехватке портов.
Netstat был обновлен в Windows 10 с добавлением параметра -Q, чтобы отобразить порты, для которых истекло время ожидания, как в состоянии BOUND. Выпущено обновление для Windows 8.1 и Windows Server 2012 R2, содержащее эту функцию. Командлет PowerShell Get-NetTCPConnection в Windows 10 также отображает эти порты BOUND.
До 10.01.2016 netstat был неточным. Исправления для netstat, которые были перенаправлены на версию 2012 R2, Netstat.exe и Get-NetTcpConnection правильно сообщать об использовании портов TCP или UDP в Windows Server 2012 R2. Дополнительные сведения см. Windows Server 2012 R2. Исправления временных портов.
Откройте командную строку в режиме администратора и выполните следующую команду:
Специальные предложения
Спасибо за статью, были похожие ошибки 10053 и 10054 на платформе 8.2. Удалось решить проблему после установки доступа.
Очень часто за новыми релизами начинаешь наблюдать разного рода странности, например в виде игнорирования процедуры регистрации компоненты COM-соединения. Тут соответственно забыли написать правила разрешения в брэндмауэре.
Откровенно говоря что-то странное у 1С творится. Одно только неимоверное количество обновлений типовых конфигураций в этом квартале чего стоит.
Но пытливый ум все победит. Спасибо за статью ;)
(0) ну во-первых однозначный "лайк", как выразился Вячеслав. Но меня тут же взволновал другой вопрос.
* то что разрешения на кластер выставлены НЕ для публичного профиля - это понятно. Как говорят наши специалисты по ИТ безопасности между серверами приложений и клиентами приложений весь трафик должен идти через "частные сети", то есть такие сети, в которых существуют средства обеспечения безопасности (причем безопасники всегда хотят чтобы это был hardware firewall). Наши администраторы сделали предположение, что кто-то ознакомился со стандартами ИТ безопасности и включил это в настройку.
* но вот то, что у вас на компьютерах включен "публичный" профиль - вот это вызывает как минимум вопросы .
Если кластер развернут на облачных площадках и нужно обеспечить доступ из любой сети - то вопрос "к шифрованным тунелям" и облачным AD от того же Azure (я так понимаю стэк то Microsoft).
P.S. У меня наверное в связи с этим напрашивается совет - присмотрелись бы вы к администрированию: чувствую там есть что донастроить/улучшить.
и еще одно - Acces violation at address 00502CCF in module 'HASyn.exe'. Write of address 0FA5C000.
Windows socket error 10022: ошибка при создании сервера
при нажатии на кнопку, одна строчка выполняется ServerSocket1->Active=True; и ошибку выдает.
Syntax error при запуске программы
привет всем. нужна помощь с фокс про. создаю exe файл. при запуске пишет syntax error. есть нажать.
На чужом компьютере при запуске программы вылезает ошибка connection error
так же ошибка adot1: cannot perform this operation on a closed dataset. главное на моем ноутбуке.
Ошибка при запуске игры: dll is either not designed to run on Windows or it contains an error
Здравствуйте! У меня с такая вот ошибка, которой и озаглавлен топик, а именно - ".dll is either.
Перевод: адрес уже используется.
Описание: обычно разрешается только одно использование адреса сокета (протокол/IP-адрес/порт). Эта ошибка возникает, если программа пытается выполнить привязку сокета к IP-адрес или порт, который уже был использован для существующего сокета socket, который был закрыт неправильно, (Wsapiref_6vzm.asp), или сокет в процессе закрытия. Программы сервера привязать несколько разъемов на тот же номер порта рассмотрите возможность использования setsockopt (Wsapiref_94aa.asp)(SO_REUSEADDR). Клиентские программы обычно не требуется вызывать все привязки, подключения (Wsapiref_8m7m.asp) автоматически выбирает неиспользуемый порт. При вызове bind с адресом подстановочный знак (включающих ADDR_ANY) WSAEADDRINUSE ошибка может быть отложена до определенного адреса фиксируется. Это может произойти при вызове другой функции, которая происходит более поздних, включая подключение, прослушивания, WSAConnect или WSAJoinLeaf.
Посмотрите. Будет ли наблюдаться эта ошибка при запуске программы в Безопасном режиме с загрузкой сетевых драйверов ?
anton877, Хм. то что в безопасном выскакивает эта ошибка - странно.
Суть этой ошибки в том,что несколько программ используют один и тот же порт/протокол.
Тут 2 варианта:
1. (простой) Провести диагностику служб и автозагрузки.
Если после отключения сторонних служб/элементом автозагрузки,при запуске программы ошибка больше не выскакивает,то проблема заключается в одной из отключённых сторонних служб или элементе автозагрузки.
Далее действуйте методом «половинного деления». Включите половину служб и снова перезагрузитесь. Если проблема не появляется, причина в оставшихся отключенных службах. Если проблема воспроизводится, причина во включенных службах — отключите половину из них и снова перезагрузитесь.
Действуя таким образом, вы сможете выявить службу, являющуюся причиной проблемы, и определить программу, которой она принадлежит. Далее можно порекомендовать лишь обновление программы до последней версии или ее удаление.
Посмотрите нет ли в списке процессов (PID),которые используют один и тот же IP-адрес. Далее запустите диспетчер задач - > вкладка Процессы -> Вид -> Выбрать столбцы -> отметьте ИД процесса и нажмите ОК -> далее с помощью номера PID вы найдёте процессы,кторые используют одни и те же IP-адреса.
Протоколы TCP и UDP работают на основе номеров портов, используемых для установления подключения. Любому приложению или службе, для которых необходимо установить подключение TCP/UDP, потребуется порт на его стороне.
Существует два типа портов:
В сценарии, когда один и тот же браузер создает много подключений к нескольким веб-сайтам, для любого нового подключения, которое пытается установить браузер, используется временный порт. Через некоторое время вы заметите, что подключения будут завершаться сбоем, и одной из высокой вероятностью этого сбоя будет то, что браузер использовал все доступные порты для подключения за пределами сети, и любая новая попытка установить подключение завершится ошибкой, так как больше нет доступных портов. При использовании всех портов на компьютере мы используем его как нехватку портов.
Метод 1
Начните с просмотра выходных данных netstat. Если вы используете Windows 10 или Windows Server 2016, netstat -anobq можно выполнить команду и проверить идентификатор процесса с максимальным количеством записей как BOUND. Кроме того, можно выполнить приведенную ниже команду PowerShell, чтобы определить процесс:
Большинство утечек портов вызвано неправильной закрытием портов процессами в пользовательском режиме при возникновении ошибки. На уровне пользовательского режима порты (фактически сокеты) являются дескрипторами. И TaskManager , и ProcessExplorer могут отображать счетчики дескрипторов, что позволяет определить, какой процесс использует все порты.
Для Windows 7 и Windows Server 2008 R2 можно обновить версию PowerShell, включив указанный выше командлет.
Читайте также: