Присоединить базу данных с помощью SMO keep Failing - PullRequest
3 голосов
/ 21 июня 2010

Я использую этот код SMO для присоединения базы данных.

        Server mServer = new Server(".");

        mServer.AttachDatabase("DbName", new StringCollection { 
            "DbName.mdf", 
            "DbName_log.LDF" }, AttachOptions.None);

Но я продолжаю получать исключение

Не удалось подключиться к серверу.

Есть идеи?

[Изменено]

Внутреннее исключение:

{"Произошла ошибка, связанная с сетью или экземпляром, при установлении соединения с SQL Server. Сервер не был найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений . (поставщик: поставщик именованных каналов, ошибка: 40 - не удалось открыть соединение с SQL Server) "}

Ответы [ 2 ]

2 голосов
/ 21 июня 2010

Ошибка говорит сама за себя - SMO не может подключиться к серверу.

  • Существует ли этот локальный сервер?
  • У вас есть право доступа к этому серверу ??
  • Возможно, вы используете именованный экземпляр (например, ". \ SQLExpress") ??

Больше очков:

  • Вы не указываете полный путь для файла MDF / LDF - попробуйте указать полный путь с каталогом и всем. Имеет ли это какое-то значение?

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

  • Служба SQL Server запущена и работает?

Ваше обновление будет означать, что SMO пытается использовать «именованные каналы» для связи с вашим сервером. Этот протокол включен на стороне сервера? Проверьте Диспетчер конфигурации SQL Server (в меню Пуск; SQL Server> Инструменты настройки> Диспетчер конфигурации SQL Server):

альтернативный текст http://i49.tinypic.com/xatfmv.png

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

0 голосов
/ 27 мая 2015

У меня была похожая проблема. Не удалось прикрепить файлы базы данных через smo. Но если я скопирую файлы mdf и ldf из папок отладки или выпуска Visual Studio, чтобы сказать корневой каталог (C :), они оттуда программно прикрепляются хорошо. Помимо отсутствия доступа к серверу, вы можете попробовать переместить файлы базы данных в другое место. Надеюсь, это поможет

...