Использование SMO на веб-сервере с ASP.NET - PullRequest
0 голосов
/ 29 сентября 2011

Требуется ли что-нибудь связанное с SQL Server, установленное на веб-сервере, чтобы использовать SMO?Я создал веб-приложение, которое программно создает задание агента SQL, добавляет шаг (который в конечном итоге запускает dtexec для запуска пакета SSIS) и выполняет.

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

Не удалось загрузить файл или сборку 'Microsoft.SqlServer.SqlClrProvider, версия = 10.0.0.0, культура = нейтральная, PublicKeyToken = 89845dcd8080cc91 'или одна из его зависимостей.

Ответы [ 2 ]

1 голос
/ 29 сентября 2011

Это крысиная нора.

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

Для получения дополнительной информации читайте это: http://www.sqldbadiaries.com/2010/10/20/how-i-fixed-could-not-load-file-or-assembly-microsoft-sqlserver-smo-version10-0-0-0-issue/

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

0 голосов
/ 29 сентября 2011

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

Вернитесь в свое решение в Visual Studio, щелкните правой кнопкой мыши сборку выше и выберите / измените «Копировать локальную» на"Правда".Скопируйте это для каждой сборки SMO, на которую вы ссылались.

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

  • Проверьте также файл web.config на наличие ссылок
  • найдите в вашем коде SqlClrProvider

enter image description here

...