Ошибка на транспортном уровне при получении результатов с сервера

SQL Server 2008 Standard SQL Server 2008 Developer SQL Server 2008 Workgroup SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 R2 Standard SQL Server 2008 R2 Developer SQL Server 2008 R2 Workgroup SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Express Еще…Меньше

Проблемы

Рассмотрим следующий сценарий.

  • Клиентское приложение подключается к экземпляру Microsoft SQL Server 2008 или Microsoft SQL Server 2008 R2.

  • Время ожидания запроса происходит, когда SQL Server сбрасывает соединение между SQL Server 2008 или SQL Server 2008 R2 и клиентским приложением. Кроме того, клиентское приложение отправляет сигнал предупреждения явным образом, отменяя запрос к экземпляру SQL Server.

В этом случае SQL Server выполняет принудительное закрытие соединения, и вы можете получить одно из следующих сообщений об ошибке:

  • Сообщение об ошибке 1

    При текущей команде возникла серьезная ошибка. Результаты, если таковые имеются, должны быть удалены.

  • Сообщение об ошибке 2

    Произошла ошибка на транспортном уровне при получении результатов с сервера. (поставщик: поставщик услуг TCP; ошибка: 0-существующее подключение было принудительно закрыто удаленным узлом.)

Кроме того, в файле Errorlog сервера SQL Server регистрируется сообщение об ошибке, похожее на приведенное ниже.

<Дата><время> <SPID> ошибка: 18056, серьезность: 20, состояние: 29. <Дата><время> <SPID> клиент не смог повторно использовать сеанс с <SPID>, который был сброшен для группировки подключений. КОД ошибки — 29. Эта ошибка может быть вызвана тем, что предыдущая операция завершилась сбоем. Перед сообщением об ошибке Проверьте журналы ошибок на предмет невыполненных операций сразу.

Решение

Сведения о накопительном пакете обновления

SQL Server 2008 R2 с пакетом обновления 2 (SP2)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 1 для SQL Server 2008 R2 с пакетом обновления 2. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2720425 Накопительный пакет обновления 1 для SQL Server 2008 R2 с пакетом обновления 2 (SP2)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2730301 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 2 (SP2)

SQL Server 2008 с пакетом обновления 3

Исправление для этой проблемы впервые выпущено в накопительном обновлении 6 для SQL Server 2008 с пакетом обновления 3. Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2715953 Накопительный пакет обновления 6 для SQL Server 2008 с пакетом обновления 3 (SP3)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2629969 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 3 (SP3) для SQL Server 2008 Исправления Microsoft SQL Server 2008 создаются для конкретных пакетов обновления для SQL Server. Вы должны применить исправление SQL Server 2008 с пакетом обновления 3 (SP3) к установке SQL Server 2008 с пакетом обновления 3 (SP3). По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.

SQL Server 2008 R2

Исправление для этой проблемы впервые выпущено в накопительном обновлении 14. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи базы знаний Майкрософт:

2703280 Накопительный пакет обновления 14 для SQL Server 2008 R2 Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2

SQL Server 2008 с пакетом обновления 1

Исправление для этой проблемы впервые выпущено в накопительном обновлении 14 для SQL Server 2008 с пакетом обновления 1 (SP1). Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2527187 Накопительный пакет обновления 14 для SQL Server 2008 с пакетом обновления 1 (SP1)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

956909 Сборки SQL Server 2008, выпущенные после выпуска SQL Server 2008 Исправления Microsoft SQL Server 2008 создаются для конкретных пакетов обновления для SQL Server. Вы должны применить исправление для SQL Server 2008 с пакетом обновления 1 (SP1) к установке SQL Server 2008 с пакетом обновления 1. По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.

SQL Server 2008 с пакетом обновления 2

Исправление для этой проблемы впервые выпущено в накопительном обновлении 10 для SQL Server 2008 с пакетом обновления 2. Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2696625 Накопительный пакет обновления 10 для SQL Server 2008 с пакетом обновления 2 (SP2)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2402659 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 2 (SP2) для SQL Server 2008 Исправления Microsoft SQL Server 2008 создаются для конкретных пакетов обновления для SQL Server. Необходимо применить исправление для SQL Server 2008 с пакетом обновления 2 (SP2) к установке SQL Server 2008 с пакетом обновления 2. По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.

SQL Server 2008 R2 с пакетом обновления 1 (SP1)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 6 для SQL Server 2008 R2 с пакетом обновления 1 (SP1). Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2679367 Накопительный пакет обновления 6 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 1 (SP1)

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе «Применяется к».

Дополнительная информация

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

http://blogs.msdn.com/b/psssql/archive/2010/05/05/error-18056-can-be-unwanted-noise-in-certain-scenarios.aspx

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Removing Connections

The connection pooler removes a connection from the pool after it has
been idle for a long time, or if the pooler detects that the
connection with the server has been severed.

Note that a severed connection can be detected only after attempting
to communicate with the server. If a connection is found that is no
longer connected to the server, it is marked as invalid.

Invalid connections are removed from the connection pool only when
they are closed or reclaimed.

If a connection exists to a server that has disappeared, this
connection can be drawn from the pool even if the connection pooler
has not detected the severed connection and marked it as invalid.

This is the case because the overhead of checking that the connection
is still valid would eliminate the benefits of having a pooler by
causing another round trip to the server to occur.

When this occurs, the first attempt to use the connection will detect
that the connection has been severed, and an exception is thrown.

Basically what you are seeing is that exception in the last sentence.

A connection is taken from the connection pool, the application does
not know that the physical connection is gone, an attempt to use it is
done under the assumption that the physical connection is still there.

And you get your exception.

There are a few common reasons for this.

  1. The server has been restarted, this will close the existing connections.

In this case, have a look at the SQL Server log, usually found at:
C:Program FilesMicrosoft SQL Server\MSSQLLOG

If the timestamp for startup is very recent, then we can suspect that
this is what caused the error. Try to correlate this timestamp with
the time of exception.

2009-04-16 11:32:15.62 Server Logging SQL Server messages in file
‘C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLLOGERRORLOG’.

  1. Someone or something has killed the SPID that is being used.

Again, take a look in the SQL Server log. If you find a kill, try to
correlate this timestamp with the time of exception.

2009-04-16 11:34:09.57 spidXX Process ID XX was killed by
hostname xxxxx, host process ID XXXX.

  1. There is a failover (in a mirror setup for example) again, take a look in the SQL Server log.

If there is a failover, try to correlate this timestamp with the time
of exception.

2009-04-16 11:35:12.93 spidXX The mirrored database “” is changing roles from “PRINCIPAL” to “MIRROR” due to
Failover.

Проблемы

Рассмотрим следующий сценарий.

  • Клиентское приложение подключается к экземпляру Microsoft SQL Server 2008 или Microsoft SQL Server 2008 R2.

  • Время ожидания запроса происходит, когда SQL Server сбрасывает соединение между SQL Server 2008 или SQL Server 2008 R2 и клиентским приложением. Кроме того, клиентское приложение отправляет сигнал предупреждения явным образом, отменяя запрос к экземпляру SQL Server.

В этом случае SQL Server выполняет принудительное закрытие соединения, и вы можете получить одно из следующих сообщений об ошибке:

  • Сообщение об ошибке 1

    При текущей команде возникла серьезная ошибка. Результаты, если таковые имеются, должны быть удалены.

  • Сообщение об ошибке 2

    Произошла ошибка на транспортном уровне при получении результатов с сервера. (поставщик: поставщик услуг TCP; ошибка: 0-существующее подключение было принудительно закрыто удаленным узлом.)

Кроме того, в файле Errorlog сервера SQL Server регистрируется сообщение об ошибке, похожее на приведенное ниже.

<Дата><время> <SPID> ошибка: 18056, серьезность: 20, состояние: 29. <Дата><время> <SPID> клиент не смог повторно использовать сеанс с <SPID>, который был сброшен для группировки подключений. КОД ошибки — 29. Эта ошибка может быть вызвана тем, что предыдущая операция завершилась сбоем. Перед сообщением об ошибке Проверьте журналы ошибок на предмет невыполненных операций сразу.

Решение

Сведения о накопительном пакете обновления

SQL Server 2008 R2 с пакетом обновления 2 (SP2)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 1 для SQL Server 2008 R2 с пакетом обновления 2. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2720425 Накопительный пакет обновления 1 для SQL Server 2008 R2 с пакетом обновления 2 (SP2)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2730301 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 2 (SP2)

SQL Server 2008 с пакетом обновления 3

Исправление для этой проблемы впервые выпущено в накопительном обновлении 6 для SQL Server 2008 с пакетом обновления 3. Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2715953 Накопительный пакет обновления 6 для SQL Server 2008 с пакетом обновления 3 (SP3)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2629969 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 3 (SP3) для SQL Server 2008 Исправления Microsoft SQL Server 2008 создаются для конкретных пакетов обновления для SQL Server. Вы должны применить исправление SQL Server 2008 с пакетом обновления 3 (SP3) к установке SQL Server 2008 с пакетом обновления 3 (SP3). По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.

SQL Server 2008 R2

Исправление для этой проблемы впервые выпущено в накопительном обновлении 14. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи базы знаний Майкрософт:

2703280 Накопительный пакет обновления 14 для SQL Server 2008 R2 Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2

SQL Server 2008 с пакетом обновления 1

Исправление для этой проблемы впервые выпущено в накопительном обновлении 14 для SQL Server 2008 с пакетом обновления 1 (SP1). Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2527187 Накопительный пакет обновления 14 для SQL Server 2008 с пакетом обновления 1 (SP1)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

956909 Сборки SQL Server 2008, выпущенные после выпуска SQL Server 2008 Исправления Microsoft SQL Server 2008 создаются для конкретных пакетов обновления для SQL Server. Вы должны применить исправление для SQL Server 2008 с пакетом обновления 1 (SP1) к установке SQL Server 2008 с пакетом обновления 1. По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.

SQL Server 2008 с пакетом обновления 2

Исправление для этой проблемы впервые выпущено в накопительном обновлении 10 для SQL Server 2008 с пакетом обновления 2. Чтобы получить дополнительные сведения об этом накопительном пакете обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2696625 Накопительный пакет обновления 10 для SQL Server 2008 с пакетом обновления 2 (SP2)Примечание. Так как сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008. Корпорация Microsoft рекомендует установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2402659 Сборки SQL Server 2008, выпущенные после выпуска пакета обновления 2 (SP2) для SQL Server 2008 Исправления Microsoft SQL Server 2008 создаются для конкретных пакетов обновления для SQL Server. Необходимо применить исправление для SQL Server 2008 с пакетом обновления 2 (SP2) к установке SQL Server 2008 с пакетом обновления 2. По умолчанию любое исправление, предоставленное в пакете обновления SQL Server, входит в следующий пакет обновления для SQL Server.

SQL Server 2008 R2 с пакетом обновления 1 (SP1)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 6 для SQL Server 2008 R2 с пакетом обновления 1 (SP1). Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления, щелкните следующий номер статьи базы знаний Майкрософт:

2679367 Накопительный пакет обновления 6 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:

2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 1 (SP1)

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе «Применяется к».

Дополнительная информация

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

http://blogs.msdn.com/b/psssql/archive/2010/05/05/error-18056-can-be-unwanted-noise-in-certain-scenarios.aspx

У меня была та же проблема, хотя это было с запросами на обслуживание к SQL DB.

Вот что было в моем сервисном журнале ошибок:


System.Data.SqlClient.SqlException: при отправке запроса на сервер произошла ошибка транспортного уровня. (provider: TCP Provider, error: 0-существующее соединение было принудительно закрыто удаленным хостом.)


У меня есть набор тестов C#, который тестирует службу. Служба и DB были оба на внешних серверах, поэтому я подумал, что это может быть проблемой. Поэтому я развернул службу и DB локально, но безрезультатно. Проблема продолжалась. Набор тестов даже не является жестким тестом производительности, поэтому я понятия не имел, что происходит. Один и тот же тест проваливался каждый раз, но когда я отключал этот тест, другой проваливался непрерывно.

Я попробовал другие методы, предложенные в Интернете, которые тоже не сработали:

  • Увеличьте значения реестра TcpMaxDataRetransmissions и TcpMaxConnectRetransmissions .
  • Отключите параметр «Shared Memory» в Диспетчере конфигурации сервера SQL в разделе «Client Protocols» и отсортируйте TCP/IP на 1-е место в списке.
  • Это может произойти при тестировании масштабируемости с большим количеством попыток подключения клиента. Чтобы устранить эту проблему, используйте утилиту regedit.exe для добавления нового значения DWORD с именем SynAttackProtect в раздел реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters с данными значения 00000000.

Моим последним средством было использовать старую поговорку «Try and try again». Поэтому я вложил операторы try-catch, чтобы гарантировать, что если соединение TCP/IP потеряно в Нижнем протоколе связи,то он не просто сдается, но пытается снова. Теперь это работает для меня, однако это не очень элегантное решение.

Я получаю ошибку SQL Server:

Произошла ошибка транспортного уровня при получении результатов сервер. (поставщик: общая память Провайдер, ошибка: 0 — Ручка недействительным.)

Я запускаю Sql Server 2008 SP1, Windows 2008 Standard 64 бит.

Это веб-приложение .NET 4.0. Это происходит, когда запрос поступает на сервер. Это прерывисто. Любая идея, как я могу ее решить?

4b9b3361

Ответ 1

Соединение с базой данных закрывается сервером базы данных. Соединение остается действительным в пуле подключений вашего приложения; в результате, когда вы берете общую строку соединения и пытаетесь выполнить ее, вы не сможете добраться до базы данных. Если вы разрабатываете Visual Studio, просто закройте временный веб-сервер на панели задач.

Если это происходит в процессе производства, сброс пула приложений для вашего веб-сайта должен переработать пул соединений.

Ответ 2

Попробуйте выполнить следующую команду в командной строке:

netsh interface tcp set global autotuning=disabled

Это отключает возможности автоматического масштабирования сетевого стека

Ответ 3

Для тех, кто не использует IIS, у меня была эта проблема при отладке с Visual Studio 2010. Я закончил все процессы отладчика: WebDev.WebServer40.EXE, который решил проблему.

Ответ 4

У меня была та же проблема. Я перезапустил Visual Studio и исправил проблему

Ответ 5

Все, что вам нужно, это остановить сервер разработки ASP.NET и снова запустить проект

Ответ 6

Получил это, всегда после приблизительно 5 минут работы. Расследовали и обнаружили, что предупреждение от e1iexpress всегда происходило до сбоя. По-видимому, это ошибка, связанная с некоторыми адаптерами TCP/IP. Но переход от WiFi к проводному не повлиял на него.

Итак, попробовал Plan B и перезапустил Visual Studio. Затем он работал нормально.

В ближайшем исследовании я заметил, что при правильной работе сообщение The Thread '<No Name>' has exited with code 0 произошло почти точно в момент, когда в предыдущих попытках произошел сбой. Некоторые из Google Google показывают, что это сообщение появляется, когда (среди прочего) сервер обрезает пул потоков.

Предположительно, в пуле потоков был фиктивный поток, и каждый раз, когда сервер пытался «обрезать» его, приложение заняло.

Ответ 7

Если вы подключены к базе данных через Microsoft SQL Server Management, закройте все свои подключения и повторите попытку.
Если бы эта ошибка возникла при подключении к другой базе данных Azure и работала для меня, когда она была закрыта.
Все еще не знаю, почему..

Ответ 8

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

Ответ 9

Ошибки уровня транспорта часто связаны с подключением к серверу sql, который прерывается… обычно в сети.

Время ожидания истекает, как правило, вызывается, когда SQL-запрос занимает слишком много времени.

Так мало вариантов:

  • Проверить подключение в VPN (если используется) или любой другой инструмент
  • Перезапустить IIS
  • Перезапустить машину
  • Оптимизация запросов sql.

Ответ 10

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

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

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

route add –p YourServerNetwork mask NetworkMask Router 

Пример:

route add –p 172.16.12.0 mask 255.255.255.0 192.168.11.2 

Я надеюсь, что это поможет кому-то, лучше иметь это, по крайней мере, как подсказку, поэтому, если вы сталкиваетесь с этим, вы знаете, как его решить.

Ответ 11

Я получил ту же ошибку в среде разработки Visual Studion 2012, остановил IIS Express и перезапустил приложение, он начал работать.

Ответ 12

Посмотрите на блог MSDN, в котором описывается эта ошибка:

Удаление соединений

Пул соединений удаляет соединение из пула после того, как он долгое время простаивали, или если пул обнаруживает, что соединение с сервером было отключено.

Обратите внимание, что отключенное соединение может быть обнаружено только после попытки для связи с сервером. Если обнаружено соединение, которое не является более длинный подключенный к серверу, он помечен как недопустимый.

Недействительные подключения удаляются из пула соединений только тогда, когда они закрыты или возвращены.

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

Это так, потому что накладные расходы на проверку того, что соединение остается в силе, исключит преимущества наличия пула в результате чего произойдет еще одна поездка на сервер.

Когда это произойдет, первая попытка использовать соединение обнаружит что соединение было отключено, и выбрано исключение.

В основном то, что вы видите, это исключение в последнем предложении.

Соединение берется из пула соединений, приложение не знаю, что физическое соединение ушло, попытка его использования сделано в предположении, что физическое соединение все еще существует.

И вы получите свое исключение.

Есть несколько общих причин для этого.

  • Сервер был перезапущен, это приведет к закрытию существующих подключений.

В этом случае просмотрите журнал SQL Server, который обычно находится по адресу: C:Program FilesMicrosoft SQL Server\MSSQLLOG

Если отметка времени для запуска очень недавно, мы можем подозревать, что это и послужило причиной ошибки. Постарайтесь сопоставить эту метку времени с время исключения.

2009-04-16 11: 32: 15.62 Server Logging Сообщения SQL Server в файле ‘C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLLOGERRORLOG.

  1. Кто-то или что-то убил используемый SPID.

Снова загляните в журнал SQL Server. Если вы найдете убийство, попробуйте сопоставить эту метку времени со временем исключения.

2009-04-16 11: 34: 09.57 идентификатор процесса spidXX XX был убит имя хоста xxxxx, идентификатор хост-процесса XXXX.

  1. Повторите попытку (например, в зеркальной настройке), загляните в журнал SQL Server.

Если происходит переход на другой ресурс, попробуйте сопоставить эту метку времени с временем исключения.

2009-04-16 11: 35: 12.93 spidXX Зеркальная база данных «меняет роли от» PRINCIPAL «до» MIRROR» из-за Failover.

Ответ 13

У меня была такая же проблема. Я решил это, обрезая SQL Server LOG.
Проверьте это, а затем сообщите нам, если это решение вам помогло.

Ответ 14

Для меня ответ заключается в том, чтобы обновить ОС с 2008 года2 до 2012 года2, решение iisreset или перезапустить приложение не сработало для меня.
Я также попытался включить параметр TCP Chimney Offload, но я не перезапустил сервер, потому что это производственный сервер, который тоже не работает.

Ответ 15

Для меня решение было совершенно другим.

В моем случае у меня был объект objectsource, который требовал параметр datetimestamp. Несмотря на то, что этот параметр ODS ConvertEmptyStringToNull был истинным, 1/1/0001 передается SelectMethod. Это, в свою очередь, вызвало исключение переполнения sql datetime, когда это datetime было передано серверу sql.

Добавлена ​​дополнительная проверка для datetime.year!= 0001, и это решило для меня.

Странно, что это вызовет ошибку транспортного уровня, а не ошибку переполнения datetime.
В любом случае..

Ответ 16

Мы столкнулись с этой ошибкой недавно между нашим бизнес-сервером и нашим сервером базы данных.
Решение для нас состояло в том, чтобы отключить «Разделение IP-адресов» на сетевых интерфейсах.
Затем ошибка исчезла.

Ответ 17

Одна из причин, по которой я нашел эту ошибку, — « Packet Size = xxxxx» в строке подключения. если значение xxxx слишком велико, мы увидим эту ошибку. Удалите это значение и позвольте серверу SQL обрабатывать его или поддерживать его на низком уровне, в зависимости от сетевых возможностей.

Ответ 18

Это случилось со мной, когда я пытался восстановить базу данных SQL и проверил следующий флажок в закладке Options,

введите описание изображения здесь

Поскольку это отдельный сервер базы данных, просто закрывающий SSMS и возобновляющий его, решил проблему для меня.

Ответ 19

В моем случае служба сервера SQL Server остановлена. Когда я перезапустил службу, которая позволила мне запустить запрос и устранить ошибку.

Также неплохо изучить ваш запрос, чтобы узнать, почему запрос остановил эту службу

введите описание изображения здесь

Ответ 20

Это происходит, когда база данных удаляется и воссоздается, некоторые общие ресурсы по-прежнему считают, что база данных по-прежнему существует, поэтому, когда вы повторно запускаете запрос выполнения для создания таблиц в базе данных после его восстановления, ошибка не будет отображаться и сообщение 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-запросы без каких-либо проблем.

Ответ 21

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

Ошибка:

Во время выполнения запроса запрос будет содержать несколько выходных данных, тогда он будет вызывать ошибку ниже.

«Ошибка транспортного уровня произошла при получении вывода из server (TCP: поставщик, ошибка: 0 — указанное сетевое имя больше не доступны»

Решение:

  • Проверить поставщика связанного сервера
  • В свойствах этого поставщика включите опцию «Разрешить inprocess» для этого конкретного поставщика, чтобы устранить проблему.

Понравилась статья? Поделить с друзьями:
  • Ошибка на тракторе аксион 850
  • Ошибка на торговой площадке стим
  • Ошибка на тойота королла p0810 робот
  • Ошибка на торговой площадке steam
  • Ошибка на тойота камри u0101