Ошибка MSSQL «Основной поставщик не удалось открыть» - PullRequest
205 голосов
/ 19 марта 2010

Я использовал .mdf для подключения к database и entityClient. Теперь я хочу изменить строку подключения, чтобы не было файла .mdf.

Правильно ли следующее connectionString?

<connectionStrings>
   <!--<add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;AttachDbFilename=|DataDirectory|\NData.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />-->
   <add name="conString" connectionString="metadata=res://*/conString.csdl|res://*/conString.ssdl|res://*/conString.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQL2008;Initial Catalog=NData;Integrated Security=True;Connect Timeout=30;User Instance=True;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />

Потому что я всегда получаю ошибку:

Основной провайдер не удалось открыть

Ответы [ 39 ]

0 голосов
/ 17 января 2015

У меня была такая же проблема несколько дней назад с использованием "Integrated Security = True;" в строке подключения вам нужно запустить удостоверение пула приложений в «localsystem». Конечно, это не рекомендуется, но для тестирования это делает работу.

Вот как вы можете изменить идентичность в IIS 7: http://www.iis.net/learn/manage/configuring-security/application-pool-identities

0 голосов
/ 11 августа 2016

У меня возникла эта проблема, поскольку имя входа в пул приложений, под которым работало это приложение, изменилось.

В IIS:

  • Найдите пул приложений, нажав на свой сайт и перейдя в раздел «Основные настройки».

  • Перейти к пулу приложений.

  • Нажмите на пул приложений вашего сайта.

  • Нажмите на Дополнительные настройки.

  • В удостоверении введите логин и пароль учетной записи.

  • Перезапустите свой сайт и попробуйте снова.

0 голосов
/ 01 августа 2012

Вы можете попробовать заменить метаданные:

metadata=res://<em>/conString.csdl|res://</em>/conString.ssdl|res://*/conString.msl

до:

metadata=res://*/;

0 голосов
/ 17 июля 2017

Я только включил пароль в мою строку подключения web.config, которая работала для меня.

<add name="Test2016Entities" connectionString="metadata=res://*/Models.PersonDataContext.csdl|res://*/Models.PersonDataContext.ssdl|res://*/Models.PersonDataContext.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=KEDAR-PC;initial catalog=Test2016;user id=sa;password=mypc123;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
0 голосов
/ 16 сентября 2015

В IIS установите Идентификатор пула приложений В качестве пользователя учетной записи службы или учетной записи администратора или учетной записи ant, которая имеет разрешение на выполнение операций с этой базой данных.

0 голосов
/ 16 февраля 2018

Здравствуйте, если вы используете Context Class Вы можете использовать следующий код:

 using (ClassContext context = new ClassContext()){
       ((IObjectContextAdapter)context).ObjectContext.Connection.Open();

        //SOMETHING TO DO......

       ((IObjectContextAdapter)context).ObjectContext.Connection.Close(); 
 }
0 голосов
/ 04 августа 2013

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

0 голосов
/ 22 ноября 2018

Добавьте это Integrated Security = True;

, и оно должно работать. Я добавляю это в свою конфигурацию, и оно начинает работать.

0 голосов
/ 09 декабря 2013

Для меня это была просто простая ошибка:

Я использовал Amazon EC2 , и я использовал свой эластичный IP-адрес в строке подключения, но когда я изменил IP-адреса, я забыл обновить строку подключения.

...