Прерывистое исключение SQL - ошибка, связанная с сетью или конкретным экземпляром

У нас очень странная периодически возникающая проблема. проблема, которая начала возникать в течение последнего месяца или около того, в результате чего некоторые подключения к серверу mssql завершаются ошибкой:

System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Ошибка не приводит к остановке сайта и не требует перезапуска базы данных - если вы просто повторно запустите тот же запрос будет работать второй раз. Это означает, что многие пользователи время от времени сталкиваются с ошибкой и должны обновлять страницу с ошибкой, чтобы все работало.

Моя первоначальная реакция коленного рефлекса заключалась в следующем:

  1. Проблема, связанная с ресурсами. - поэтому я начал запускать профилировщик SQL и perfmon, но не обнаружил никаких проблем с сервером, который не успевал за количеством подключений в секунду. Я смотрел MSSQL: ошибки SQL, MSSQL: статистика ожидания, MSSQL: статистика Exec, MSSQL: блокировки. Есть ли у кого-нибудь какие-либо рекомендации по другой статистике, которую я должен здесь копать?

  2. Незакрытые соединения с БД - я исключил это после прохождения всего кода уровня данных. У нас есть все предохранители, чтобы этого не произошло.

  3. Проблема, связанная с подключением / сетью: наш SQL-сервер находится на отдельном сервере (MS SQL Server Standard 2008) с нашим сервером приложений (на котором запущен ASP.Net на IIS7) - оба сервера работают на экземплярах xlarge Amazon EC2 со всеми настроенными политиками безопасности. (по направлению амазонок). Кто-нибудь получил руководство о том, как проверить соединение между двумя серверами, и может ли это быть проблемой?

  4. Это возможная проблема со строкой подключения IIS? Я не тестировал это, но должны ли мы полностью квалифицировать сервер с именем компьютера, к которому мы подключаемся (просто подумайте об этом)? Мы используем строку подключения в формате: server = xxxxx; Database = xxxx; uid = xxxx; password = xxx;

Мы очень ценим ваши мысли и понимание!

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

5
задан StacMan 14 June 2011 в 03:47
поделиться