Итак, у меня есть инструмент автоматизации, который использует C# для вызова сценария Powershell, который будет использовать sqlpackage.exe для извлечения базы данных на удаленном сервере в .dacpac и сохранить его в моей файловой системе.Сообщение об ошибке «Не удается получить доступ к закрытому потоку» при попытке извлечь базу данных с помощью sqlpackage.exe с powershell
Мы используем асинхронные вызовы процесса/конвейера powershell для получения текущего результата выполнения сценария и вывода их на экран для пользователя. Этот инструмент отлично справляется с возрастом, но внезапно останавливается на полпути процесса извлечения и выдает следующее сообщение об ошибке «Ошибка извлечения базы данных: не удалось экспортировать схему и данные из базы данных. Не получить доступ к закрытому потоку». На данный момент я понятия не имею, что заставляет поток перегружаться, и процесс извлечения внезапно прекращается.
Просто интересно, кто-нибудь испытал что-либо подобное или кто-нибудь может порекомендовать некоторые шаги для отладки этой ошибки?
Вот часть моего сценария, выполняющее извлечение:
sqlpackage `
/action:extract `
/SourceConnectionString:"$endpoint" `
/TargetFile:"$dacPacFile" `
/p:ExtractAllTableData=True `
/p:ExtractReferencedServerScopedElements=False `
/p:IgnoreUserLoginMappings=True
Я гуглом ошибки, и [это ] (https://social.msdn.microsoft.com/Forums/sqlserver/en-US/4da7fd2a-6867-4dd4-945a-b277cb8d516f/dacservicesexportbacpac-fails-repeatedly-for-a-single-azure-database-exception- can-not-access-a? forum = ssdt) предполагает, что это вызвано заполнением диска. Неужели? – TessellatingHeckler
Хм кажется, что у ОП была такая же проблема, как у меня, но в его потоке не было разрешения. Я убедился, что это не проблема с дисковым пространством, и проверил все упомянутые каталоги –