ASP.NET MVC 3-не удается найти requested.Net поставщик данных платформы



Background-info:



Я использую Microsoft Visual Web Developer 2010 Express.

Информация о моем (отсутствии) опыта: проблема возникла в первом учебнике, который я пытаюсь проработать.



дополнительная информация:




  • мне комфортно с C#, Postgres, Rails (поэтому MVC и веб-приложения для меня не новы)

  • у меня есть нет опыт работы с ASP.NET или SQL Server


Описание Проблемы:



Я пытаюсь точно следовать шагам из "вступление к ASP.NET MVC 3"-учебник, и я столкнулся с проблемой в первый шаг из части 5-добавление MoviesController:



когда я пытаюсь добавить "MoviesController" с точными настройками, которые показаны в учебнике, и нажмите "Добавить", я получаю следующую ошибку:




" невозможно получить метаданные для
MvcMovie.Модели.Кино. не удалось
найти требуемый .Чистая База Данных
Поставщик.
он не может быть установлен."




Google дал массу результатов при поиске фразы" не удалось найти запрошенного поставщика данных .Net Framework", но до сих пор ничего не решило проблему.



что я пробовал:



Я думаю, что SQL-сервер не был установлен, поэтому я установил он из Visual-Studio Express ISO-получил ошибку, затем я запустил ремонт из ISO, и он утверждал, что все 15 точек, включая SQL Server Express repair &.NET 4 Framework, прошли успешно.



Я запустил The_.NET_Framework_Setup_Verification_tool, который преуспел во всем.
http://blogs.msdn.com/b/astebner/archive/2008/10/13/8999004.aspx



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



я обнаружил, что я должен искать DbProviderFactories в машине.config,



корневая паутина.конфигурация проекта имеет следующие записи



  <connectionStrings>
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>


в конфигурационном файле моей машины есть только одна запись DbProviderFactories:



<DbProviderFactories>
<add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories>


затем я нашел следующую цитату




"мы изменили способ
DbProviderFactories.GetFactoryClasses()
определяет рамки поставщики в
VS2010. Они не вошли в
машина.конфигурационный файл. "




от http://social.msdn.microsoft.com/Forums/en-ZA/adodotnetdataproviders/thread/d79129c4-ae05-4c45-8997-bd90f5765a3a



вопрос:



Так что, возможно, это неправильное направление, и поскольку я понятия не имею, что делать дальше, какие шаги я должен предпринять, чтобы исследовать и решить эту проблему?

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

592   13  

13 ответов:

у меня была такая же проблема, поэтому я заменил

<add name="MovieDBContext"     connectionString="Data Source=|DataDirectory|Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>

следующим

<add name="MovieDBContext"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;database=Movies;User ID=sa;password="
     providerName="System.Data.SqlClient"/>

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

вам нужно установить Microsoft SQL Server Compact 4.0.

Если вы посмотрите на конфигурацию, вы увидите, что установка SQL Server была красной селедкой;

<add name="MovieDBContext"
 connectionString="Data Source=|DataDirectory|Movies.sdf"
 providerName="System.Data.SqlServerCe.4.0"/>

SqlServerCE не является, Я боюсь, полномасштабным SQL Server, это SQL Server Compact Edition. Я бы подумал, что это было бы установлено с VS Express, однако вы можете скачать конкретные установщики из здесь

на самом деле у меня были установлены как SQLServerCE, так и Express, но учебник использовал Compact Edition: один шаг в рамках части 4 учебника это явно добавить часть, которую вы процитировали в Интернете.конфиг. Так что это часть сети.конфиг по намерению.

но удаление этой части из интернета.конфигурация позволяет добавить контроллер так, как описано в учебнике. Хотя это означает, что больше не ровно после урока, это нормально для меня. (Это приводит к созданию MvcMovie.Модели.MovieDBContext базы данных в SQL Server, Экспресс-выпуск.)

http://forums.asp.net/t/1679349.aspx/1 CypressBender

Re: не удается получить метаданные для * не удается найти запрошенного поставщика данных .Net Framework.... 08 августа 2011 года 07: 44 PM|LINK

Я установил Microsoft SQL Server Compact 4.0, и это исправило проблему для меня. http://www.microsoft.com/download/en/details.aspx?id=17876

Я изменил свой SQL providerName= " System.Данные.SqlClient " в сети.config, так как у меня есть SQL client, а также SQL compact, установленный в моей системе.

перестройка проекта не будет ловить ошибки конфигурации в разделе DBContext... процесс сборки не проходит через соединения, поэтому вы можете строить весь день и все равно бомбить. Как было предложено выше, исправьте конфигурацию, чтобы строка подключения соответствовала MachineName/SQLInstanceName / DBName с правильной конфигурацией SQL. Работал просто отлично, просто изменив мой веб.конфигурация в моем решении.

  1. убедитесь, что вы строите перед добавлением контроллера. Если это не сработает...
  2. создайте новый проект, создайте новую базу данных sql server вручную и посмотрите, можно ли к ней подключиться. Если нет, то проблема действительно в конфигурации sql server на вашем компьютере. Вы можете попробовать перейти к postgres, просто убедитесь, что поставщик, который вы выбираете, сначала поддерживает код EF.

то, что я сделал для того, чтобы преодолеть первую проблему я поставил в Интернете.конфигурация кода:

 <add name="MovieDBContext"
     connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Movies.sdf;Integrated Security=True"
   providerName="System.Data.SqlClient"/>

обратите внимание, что я создаю базу данных SQL CE 4, поэтому.ФСР и нет .МДФ

Далее вы должны получить еще одну ошибку подключения на странице / фильмы, поэтому замените приведенный выше код:

<add name="MovieDBContext"
     connectionString="Data Source=|DataDirectory|\Movies.sdf;"
   providerName="System.Data.SqlServerCe.4.0"  />

и вы должны быть хорошо.

У меня был сервер. Он запускал обновления windows. И сообщение, ожидающее перезагрузки, было открыто. После перезагрузки он снова работал.

установите Microsoft SQL Server Compact 4.0. Ссылка для того же -http://www.microsoft.com/en-us/download/details.aspx?id=17876

это сработало для меня, надеюсь, это поможет

<add name="MovieDBContext"
     connectionString="Data Source=(local);Initial Catalog=Movies; Integrated Security=true;"    providerName="System.Data.SqlClient" />
</connectionStrings>

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

попробуйте это:

<add name="MovieDBContext"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|Movies.sdf;User Instance=true"
     providerName="System.Data.SqlClient" />

Comments

    Ничего не найдено.