SQL Server 2008 connectionString вопрос - PullRequest
6 голосов
/ 15 февраля 2011

Я пытаюсь подключиться к своей базе данных SQL Server 2008 с помощью ASP.NET MVC 3. Вот моя строка подключения:

  <connectionStrings>
    <add name="AppConnectionString"
         connectionString="Data Source=(local);Initial Catalog=DatabaseName;User Id=UserName;Password=PassWord;"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

Есть идеи, что случилось?

Когда я пытаюсь сделать запрос в моем DbContext, я получаю следующее исключение:

  • $ exception {"Поставщик не возвратил строку ProviderManifestToken."} System.Exception {System.Data.ProviderIncompatibleException}

  • InnerException {"Ошибка сетевого или конкретного экземпляра произошла при установлении соединения с SQL Server. Сервер не был найден или был недоступен. Убедитесь, что имя экземпляра правильное и что SQL Server настроен разрешить удаленные подключения. (поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка при поиске сервера / указан экземпляр) "} System.Exception {System.Data.SqlClient.SqlException}

Может ли кто-нибудь помочь мне, пожалуйста?

Спасибо

Ответы [ 7 ]

3 голосов
/ 15 февраля 2011

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

3 голосов
/ 15 февраля 2011

Сначала проверьте, нормально ли работают ваши службы mssqlserver.Просто запустите net start mssqlserver в командной строке.

Затем попробуйте изменить строку подключения Data Source=(local) на Data Source=.

Все вышеизложенное предполагает, что на вашем локальном компьютере установлен сервер sql..

2 голосов
/ 15 февраля 2011

Кроме (локального) try (localhost) или 127.0.0.1 (адрес обратной связи - и нигде как; -)

Также один период будет "." разрешить на локальный компьютер.

В строке подключения и приведенном выше совете предполагается, что вы пытаетесь подключиться к безымянному экземпляру по умолчанию. Если ваш экземпляр сервера назван, вам нужно включить его как часть строки conn, например:. \ ServerName

Более подробную информацию можно найти по адресу: http://connectionstrings.com

2 голосов
/ 15 февраля 2011

Можете ли вы пинговать сервер?

Вы можете создать новый пустой текстовый файл, переименовать его в test.udl, дважды щелкнуть по нему и таким образом создать строку подключения. (Откроется диалоговое окно, и вы можете выбрать провайдера, сервер, базу данных и т. Д.).

также посмотрите w ww.connectionstrings.com , например, строки подключения

Существует также пример, который необходимо принять во внимание. например, если вы используете sqlexpress, это может быть (локально) \ SQLEXPRESS

1 голос
/ 30 июля 2011

Если вы посмотрите на InnerException, вполне возможно, что у вас действительно есть проблема с входом в систему.

Что мне нужно было сделать, чтобы это исправить, измените учетную запись, с которой работает DefaultAppPool, на NetworkService (перейдите кДополнительные параметры и измените Модель процесса, Удостоверение личности), а затем выберите учетную запись, которая имеет доступ к вашей базе данных.

Если, конечно, ваше приложение работает в IIS с использованием DefaultAppPool.

Я сделал его NetworkServiceи предоставил пользователю NT AUTHORITY \ NETWORK SERVICE доступ к моей существующей базе данных.

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

1 голос
/ 14 июля 2011

У меня была похожая проблема, и мне помогли следующие шаги:

1) Ваше приложение должно иметь файл App.config, содержащий строку подключения, имя которой совпадает с именем вашего класса, унаследованного от DbContext. В моем случае "TestEF_CF.ProductContext".

<add name="TestEF_CF.ProductContext" connectionString="Data Source=localhost;Initial Catalog=ef_cf_test;Integrated Security=True" providerName="System.Data.SqlClient" />

2) База данных не может быть создана до того, как вы начнете ее использовать. Просто установите в Начальном каталоге имя, которое вы хотите, чтобы Entity Framework создавал при создании базы данных автоматически.

См. Мой вопрос stackowerflow для получения дополнительной информации, если вам это нужно: Entity Framework 4.1 Code First Freeze

0 голосов
/ 25 марта 2014
        SqlConnection [object name];
        [object name] = new SqlConnection("Data Source=Server_address/name;Initial Catalog=myDatabase;Integrated Security=True");
        [object name].Open();

Примечание: Квадратные скобки, которые показаны, ставить не следует, нужно указывать только имя объекта. Server_address: имя вашего компьютера. myDatabase: имя вашей базы данных.

...