Я получаю ошибку SQL Server:
Произошла ошибка транспортного уровня при получении результатов с сервера. (поставщик: поставщик общей памяти, ошибка: 0 - дескриптор недействителен.)
Я использую Sql Server 2008 SP1, Windows 2008 Standard 64 bit.
Это веб-приложение .Net 4.0. Это происходит при запросе к серверу. Это прерывисто. Любая идея, как я могу решить это?
sql-server-2008
Чак Конвей
источник
источник
this one was resolved in a manner unlikely to help future readers
- но 179 тысяч человек сталкивались с этим вопросом.Ответы:
Соединение с базой данных закрыто сервером базы данных. Соединение остается действительным в пуле соединений вашего приложения; в результате, когда вы берете общую строку подключения и пытаетесь выполнить ее, она не может достичь базы данных. Если вы разрабатываете Visual Studio, просто закройте временный веб-сервер на панели задач.
Если это происходит в рабочей среде, сброс пула приложений для вашего веб-сайта должен перезапустить пул соединений.
источник
MultipleActiveResultSets=True
настройка в строке подключения, которая вызвала ту же ошибку.Попробуйте следующую команду в командной строке:
Это отключает возможности автоматического масштабирования сетевого стека
источник
У меня такая же проблема. Я перезапустил Visual Studio, и это решило проблему
источник
Для тех, кто не использует IIS, у меня возникла эта проблема при отладке в Visual Studio 2010. Я завершил все процессы отладчика: WebDev.WebServer40.EXE, который решил эту проблему.
источник
Ошибки транспортного уровня часто связаны с разрывом соединения с сервером sql ... обычно сетевым.
Timeout Expired обычно генерируется, когда выполнение sql-запроса занимает слишком много времени.
Так что несколько вариантов могут быть:
источник
Все, что вам нужно, это остановить ASP.NET Development Server и снова запустить проект
источник
Если вы подключены к базе данных через Microsoft SQL Server Management, закройте все ваши подключения и повторите попытку. Возникла эта ошибка при подключении к другой базе данных Azure и работала для меня, когда она закрывалась. Все еще не знаю почему ..
источник
Получал это всегда после примерно 5 минут работы. Расследовал и обнаружил, что предупреждение от e1iexpress всегда появлялось до сбоя. По-видимому, это ошибка, связанная с некоторыми адаптерами TCP / IP. Но переход с WiFi на аппаратный не повлиял на это.
Итак, попробовал Plan B и перезапустил Visual Studio. Тогда все работало нормально.
При ближайшем рассмотрении я заметил, что при правильной работе сообщение
The Thread '<No Name>' has exited with code 0
появлялось почти в то же время, когда во время предыдущих попыток произошел сбой запуска. В некоторых поисках Google обнаруживается, что это сообщение появляется, когда (среди прочего) сервер обрезает пул потоков.Предположительно, в пуле потоков был фиктивный поток, и каждый раз, когда сервер пытался «обрезать» его, он выключал приложение.
источник
Посмотрите на блог MSDN, в котором подробно описана эта ошибка:
источник
Вы получаете это сообщение, когда ваш сценарий заставляет SQL Service останавливаться по некоторым причинам. поэтому, если вы снова запустите службу SQL, возможно, ваша проблема будет решена.
источник
Я знаю, что это не может помочь всем (кто знает, может быть, да), но у меня была та же проблема, и через некоторое время мы поняли, что причина была в чем-то не в самом коде.
Компьютер, пытающийся получить доступ к серверу, находился в другой сети, соединение могло быть установлено, но затем сброшено.
Способ, которым мы привыкли это исправлять, состоял в том, чтобы добавить статический маршрут к компьютеру, позволяющий прямой доступ к серверу без прохождения через брандмауэр.
Образец:
Я надеюсь, что это кому-то поможет, лучше иметь это, по крайней мере, в качестве подсказки, поэтому, если вы сталкиваетесь с этим, вы знаете, как решить эту проблему.
источник
Я получил ту же ошибку в среде разработки Visual Studion 2012, остановил IIS Express и перезапустил приложение, оно заработало.
источник
В моем случае служба сервера «SQL Server» остановлена. Когда я перезапустил сервис, который позволил мне выполнить запрос и устранить ошибку.
Также хорошей идеей будет изучить ваш запрос, чтобы выяснить, почему запрос остановил эту службу.
источник
Я была такая же проблема. Я решил это, обрезав SQL Server LOG. Проверьте это, а затем сообщите нам, помогло ли вам это решение.
источник
Для меня ответ - обновить ОС с 2008R2 до 2012R2, решение iisreset или restart apppool у меня не сработало. Я также попытался включить настройку TCP Chimney Offload, но я не перезагружал сервер, потому что это рабочий сервер, который тоже не работал.
источник
Для меня решение было совершенно другим.
В моем случае у меня был объектный источник, для которого требовался параметр datetimestamp. Несмотря на то, что параметр ODS ConvertEmptyStringToNull был истинным, 1/1/0001 передавался в SelectMethod. Это, в свою очередь, вызвало исключение переполнения даты и времени sql, когда дата и время были переданы серверу sql.
Добавлена дополнительная проверка для datetime.year! = 0001, и это решило ее для меня.
Странно, что это вызовет ошибку транспортного уровня, а не ошибку переполнения даты и времени. В любом случае ..
источник
Недавно мы столкнулись с этой ошибкой между нашим бизнес-сервером и сервером базы данных. Для нас решением было отключить «IP Offloading» на сетевых интерфейсах. Тогда ошибка ушла.
источник
Одна из причин, по которой я обнаружил эту ошибку, - « Размер пакета = xxxxx » в строке подключения. если значение xxxx слишком велико, мы увидим эту ошибку. Удалите это значение и дайте SQL-серверу обработать его или оставьте его низким, в зависимости от возможностей сети.
источник
Это случилось со мной, когда я пытался восстановить базу данных SQL и установил следующий флажок на
Options
вкладке,Поскольку это отдельный сервер баз данных, просто закрытие SSMS и повторное его открытие решили эту проблему для меня.
источник
Это происходит, когда база данных удаляется и воссоздает некоторые общие ресурсы, все еще считая, что база данных по-прежнему существует, поэтому при повторном запуске запроса на выполнение для создания таблиц в базе данных после ее повторного создания ошибка не будет отображаться снова и
Command(s) completed successfully.
сообщение покажет вместо сообщения об ошибкеMsg 233, Level 20, State 0, Line 0 A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - No process is on the other end of the pipe.)
.Просто игнорируйте эту ошибку, когда вы отбрасываете и воссоздаете базы данных, и без проблем выполняйте ваши DDL-запросы.
источник
Я недавно столкнулся с той же проблемой, но я не смог получить ответ в Google. Мысль поделиться этим здесь, чтобы он мог помочь кому-то в будущем.
Ошибка:
При выполнении запроса запрос будет выдавать мало информации, тогда он выдаст ошибку ниже.
Решение:
источник