У меня есть проект базы данных VS 2010, которому нужна ссылка на базу данных Dynamics CRM. У меня удаленный доступ к 32-битному серверу Windows 2003 R2 SP2. Моя стратегия состоит в том, чтобы создать файл .dbschema и использовать его в качестве справочного.
Два лучших ресурса, которые я нашел для создания файла .dbschema: stackoverflow и MSDN .
Полученная ошибка:
Не удалось определить поставщика схемы базы данных из предоставленной строки подключения. Проверьте, является ли строка подключения допустимой для поставщика ADO.NET, используемого для вашего поставщика базы данных, и обладаете ли вы правами, необходимыми для подключения к серверу.
Шаги, которые я сделал:
- Создать временную папку C: \ temp
- Скопировать содержимое папки C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VSTSDB \ Развернуть в C: \ temp
- Скопируйте некоторые библиотеки DLL из списка ниже папки C: \ Program Files (x86) \ Microsoft SQL Server Compact Edition \ v3.5 в C: \ temp
На этом этапе инструкции MSDN говорят, что у меня должны быть файлы
- DatabaseSchemaProviders.Extensions.xml
- Microsoft.Data.Schema.dll
- Microsoft.Data.Schema.ScriptDom.dll
- Microsoft.Data.Schema.ScriptDom.Sql.dll
- Microsoft.Data.Schema.Sql.dll
- Microsoft.SqlServer.BatchParser.dll
- Sqlceer35en.dll
- Sqlceme35.dll
- Sqlceqp35.dll
- Sqlcese35.dll
- System.Data.SqlServerCe.dll
Это почти правда.
- DatabaseSchemaProviders.Extensions.xml фактически находится в C: \ temp \ Extensions \ SqlServer \, поэтому я также скопировал его в C: \ temp на тот случай, если он должен находиться на том же уровне каталога
Microsoft.SqlServer.BatchParser.dll был найден в GAC, поэтому, предположительно, мне не нужно копировать его в C: \ temp, но я все равно сделал это, взяв 32-битную версию, потому что другие мои библиотеки DLL пришло из Program Files (x86).
- Я попытался запустить VSDBCMD локально из C: \ temp с CMD, запущенным от имени администратора. Я также скопировал C: \ temp на сервер и попытался запустить его там.
VSDBCMD / a: Импорт /cs:"Provider=SQLOLEDB.1;Password=********;Persist Информация о безопасности = True; ID пользователя = sa; Исходный каталог = VANILLA_MSCRM; Источник данных = ** ****** "/ dsp: Sql /model:VANILLA_MSCRM.dbschema
Я перепробовал все комбинации источников данных = {., (Local), localhost, IP-адреса, имени машины, имени домена} с Providers = {SQLOLEDB.1, SQLNCLI10.1, SQLNCLI.1}. Все приводят к одной и той же ошибке. Очевидно, что (локальный) и localhost использовались только при запуске с сервера. Я протестировал строки подключения, построив их с помощью файлов UDL (\ http://msdn.microsoft.com/en-us/library/e38h511e%28VS.71%29.aspx). Как предлагается в этом посте \ http://social.msdn.microsoft.com/Forums/en-US/vstsdb/thread/dabd14fa-a805-4855-b3f1-33b37b16c5b1 Я попробовал sqlcmd и смог успешно его запустить.
Как я могу устранить эту проблему? Является ли моя стратегия создания файла .dbschema для ссылки на мою базу данных CRM ошибочным подходом?