Сетчатый период ожидания
Недавно я очистил и переустановил/настроил все компоненты моих веб-серверов и серверов БД. Я запускаю IIS 6,.NET 3.5, SQL Server 2005. Два сервера представляют собой отдельную виртуальную машину в том же домене. Мое веб-приложение прекрасно работает... 90% времени. Но время от времени я получаю эту ошибку или общую ошибку времени выполнения:
System.Data.SqlClient.SqlException: при получении результатов с сервера произошла ошибка транспортного уровня. (поставщик: поставщик TCP, ошибка: 0 - период таймаута семафора истек.)
Можете ли вы, ребята, дать мне несколько подсказок о том, где начать поиск и устранение неисправностей? Я действительно думаю, что что-то пропустил в IIS.
Спасибо заранее!
Ответы
Ответ 1
После устранения неполадок в течение нескольких часов и сидения на телефоне с моей группой хостинга они обнаружили, что возникла проблема с их сетевой конфигурацией. Решение стало более ясным, когда во время моего тестирования одна из виртуальных машин внезапно не смогла найти домен, а простой "пинг" на IP-адрес каждого окна из другого иногда будет отсутствовать. Это полностью исключало DNS. После того, как группа хостинга применила правильную конфигурацию на своем конце, приложение было стабильным и FAST!
Спасибо за помощь!
Ответ 2
Вы можете проверить нагрузку на сервере db? Мы получаем их время от времени в нашем dev env, но никогда в prod env.
Ответ 3
Хорошо, я бы начал с обеспечения того, что у меня установлена последняя версия драйверов сети виртуальной машины.
Похоже, что comms не работает между вашим 2 VMS. Попробуйте открыть TCP-сокет между двумя машинами и посмотреть, не истечет ли он через определенное время.
Ответ 4
Несколько указателей здесь. В основном ошибка генерируется сетевым уровнем, а SQL-сервер - просто сообщая об этом.
Надеюсь, что это поможет.
Ответ 5
проверить, имеет ли хранимая процедура какую-либо строку
УСТАНОВИТЬ УРОВЕНЬ ИЗОЛЯЦИИ УСТАНОВКИ НЕ ПРОПУСТИТЕ
Для меня это была проблема
Ответ 6
Поздно к игре, но я получал ту же ошибку с веб-приложением .NET/MS SQL. Сайт размещен в IIS на GoDaddy VPS, хостинг имеет несколько IP-адресов, БД размещена в Azure.
Я считаю, что моя проблема была (идиот!), Я просто забыл поместить выделенные IP-адреса сайта GD из GD в брандмауэр Azure для сервера SQL. По какой-то странной причине трафик поступает в/из GD/Azure за пределами фактического IP-адреса веб-сайта (адреса привязки IIS) и работает.
Но чаще всего фактические адреса привязки IIS обращаются к Azure для взаимодействия со службами SQL. Я исправил настройки брандмауэра в Azure, добавив в него правильные IP-адреса от GoDaddy и (стук по дереву) ошибка семафора, похоже, исчезла.
Другими словами, прежде чем вы начнете искать большие проблемы, начните с простого и обязательно проверьте простые вещи, такие как настройки сети/брандмауэра.
Ответ 7
Я опубликую свой опыт на случай, если он кому-нибудь может помочь;)
В конце года я просто пытался удаленно подключиться к нашим серверам из какого-то места, используя мой телефон. Я заметил, что не могу войти на один сервер Windows через удаленный рабочий стол (черный экран) и не могу подключиться из приложения Windows к тому же серверу.
Как только я переключился со своего телефона на другое соединение (через мобильный роутер NightHawk M1), все было хорошо.
Как я уже читал, речь идет в основном о проблемах с сетью, поэтому НЕ ПАНИКУЙТЕ и не пытайтесь найти виновных там.
Надеюсь, это поможет, R