Период ожидания семафора - PullRequest
27 голосов
/ 15 февраля 2009

Я недавно стер и переустановил / настроил все компоненты моего веб-сервера и сервера БД. Я использую IIS 6, .NET 3.5, SQL Server 2005. Два сервера являются отдельными виртуальными машинами в одном домене. Мое веб-приложение работает отлично ... 90% времени. Но время от времени я получаю эту ошибку или общую ошибку времени выполнения:

System.Data.SqlClient.SqlException: ошибка транспортного уровня произошла при получении результатов от сервера. (поставщик: поставщик TCP, ошибка: 0 - истекло время ожидания семафора.)

Не могли бы вы дать мне несколько советов, с чего начать устранение неполадок? Я действительно думаю, что что-то упустил в IIS.

Заранее спасибо!

Ответы [ 7 ]

14 голосов
/ 24 февраля 2009

После устранения этой проблемы в течение нескольких часов и посидев по телефону с моей хостинговой группой, они обнаружили, что была проблема с их сетевой конфигурацией. Решение стало более понятным, когда во время моего тестирования одна из виртуальных машин внезапно не смогла найти домен, и простой «пинг» IP-адреса каждого ящика из другого иногда мог бы истечь. Это полностью исключает DNS. После того, как хостинговая группа применила правильную настройку, приложение стало стабильным и БЫСТРОМ!

Спасибо всем за помощь!

3 голосов
/ 19 февраля 2009

Вот несколько указателей здесь . В основном, ошибка выдается сетевым уровнем, а SQL-сервер просто сообщает об этом.

Надеюсь, это поможет.

2 голосов
/ 19 февраля 2009

Ну, я бы начал с того, что у меня установлена ​​последняя версия сетевых драйверов моей виртуальной машины.

Звучит так, будто между вашими 2 VMS происходит сбой связи. Попробуйте открыть TCP-сокет между двумя компьютерами и посмотрите, не исчезнет ли он через некоторое время.

2 голосов
/ 15 февраля 2009

Можете ли вы дважды проверить нагрузку на сервер БД? Мы получаем их время от времени в нашей среде разработки, но никогда в среде разработчиков.

0 голосов
/ 23 декабря 2018

Я опубликую свой опыт на случай, если он кому-нибудь может помочь;)

В конце года я просто пытался удаленно подключиться к нашим серверам из какого-то далёкого места, используя мой телефон. Я заметил, что не могу войти на один сервер Windows через удаленный рабочий стол (черный экран) и не могу подключиться из приложения Windows к тому же серверу.

Как только я переключился со своего телефона на другое соединение (через мобильный роутер NightHawk M1), все было хорошо.

Как я прочитал, речь идет в основном о проблемах с сетью, поэтому НЕ ПАНИКУЙТЕ и не пытайтесь найти виновных там.

Надеюсь, это поможет, R

0 голосов
/ 03 февраля 2018

Поздно к игре, но я получал ту же ошибку с веб-приложением .NET / MS SQL. Сайт размещен в IIS на GoDaddy VPS, хостинг имеет несколько IP-адресов, БД размещена в Azure.

Я полагаю, что моя проблема была (идиот!), Я просто забыл поместить выделенные IP-адреса сайта GD из GD в брандмауэр Azure для сервера SQL. По какой-то странной причине трафик попадает в / из GD / Azure за пределами фактического IP-адреса веб-сайта (адреса привязки IIS) и работает.

Но чаще всего фактические адреса привязки IIS обращаются к Azure для взаимодействия со службами SQL. Я исправил настройки брандмауэра в Azure, добавив в него правильные IP-адреса из GoDaddy, и (стук по дереву) ошибка семафора, похоже, исчезла.

Другими словами, прежде чем вы начнете искать большие проблемы, начните с простого и обязательно проверьте простые вещи, такие как настройки сети / брандмауэра.

0 голосов
/ 19 июля 2017

проверить, есть ли в хранимой процедуре какая-либо строка УСТАНОВИТЕ УРОВЕНЬ ИЗОЛЯЦИИ СДЕЛКИ СЧИТАЕТСЯ НЕОГРАНИЧЕННЫМ

Для меня это была проблема

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...