Произошла ошибка транспортного уровня при получении результатов с сервера.«Труба закончилась». - PullRequest
0 голосов
/ 11 июня 2018

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

System.Data.SqlClient.SqlException: A transport-level error has occurred when receiving results from the server. (provider: Named Pipes Provider, error: 0 - The pipe has been ended.) ---> System.ComponentModel.Win32Exception: The pipe has been ended.

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

Наши машины разработки и сервер сборки используют экземпляр по умолчанию локальной базы данных SQL (MSSQLLOCALDB), и мы только когда-либо видели, чтобы эта проблема появлялась на сервере сборки.Может ли это быть из-за того, что сервер сборки выполняет несколько наборов модульных тестов параллельно на одном и том же сервере, и канал для нас заканчивается?Каждый набор модульных тестов использует свою собственную базу данных, поэтому они не должны конфликтовать друг с другом.

Глядя на похожие вопросы о переполнении стека и Google, я попытался решить проблему, включив «Именованные каналы» иПротоколы "TCP / IP" для SQLEXPRESS, но безуспешно пытались решить проблему.

Любая помощь будет принята с благодарностью, и я могу предоставить любую дополнительную информацию, если потребуется.

Спасибо

1 Ответ

0 голосов
/ 15 июня 2018

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

...