Entity Framework 4.1 Поставщик не возвратил строку ProviderManifestToken Исключение - PullRequest
1 голос
/ 08 сентября 2011

Я загрузил первый пример приложения Asp.NET MVC 3 EntityFramework Code в vb.net и изменил строку подключения, поскольку у меня нет SQL Server Express Edition, чтобы попробовать его с Sql Server 2008 Web Edition

<add name="ApplicationServices"
         connectionString="Server=MyPC\Sql2008;Trusted_Connection=True;MultipleActiveResultSets=True"
         providerName="System.Data.SqlClient" />

когда я пытаюсь запустить приложение, ProviderIncompatibleException выдается исключение.И следующая ошибка отображается в окне браузера.

Ошибка сервера в приложении '/'.

Произошла ошибка, связанная с сетью или экземпляром, при установлении соединения с SQL Server.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: поставщик совместно используемой памяти, ошибка: 40 - не удалось открыть соединение с SQL Server)

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

Сведения об исключении: System.Data.SqlClient.SqlException: при установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром.Сервер не найден или не был доступен.Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений.(поставщик: поставщик общей памяти, ошибка: 40 - не удалось открыть соединение с SQL Server)

Ошибка источника:

Строка 24: Строка 25: Строка 26: @Для каждого элемента в моделиСтрока 27: @ Строка 28:

Исходный файл: C: \ Documents and Settings \ Шишир Шукла \ Мои документы \ Загрузки \ CodeFirstEFVB \ CodeFirstMVC \ Views \ Blog \ Index.vbhtml Строка: 26

Строка подключения, которую я использовал, прекрасно работает с моим приложением asp.net webforms, а также с приложением Winforms.

Пожалуйста, помогите мне быстро избавиться от этой проблемы, так как я только что переключился на MVC.

Ответы [ 3 ]

2 голосов
/ 10 сентября 2011

Проблема была со строкой подключения, я изменил ее на это, и это сработало ..

<add name="DBCon" connectionString="Data Source=.\SQL2008;Initial Catalog=TestDB;Integrated Security=True" providerName="System.Data.SqlClient" />
0 голосов
/ 09 сентября 2011

Можете ли вы предоставить ссылку на загруженный проект?

Вы используете проверку подлинности Windows, имеет ли учетная запись IIS разрешения для базы данных?

Наконец, убедитесь, что ваш класс dbContext назван «ApplicationServices». В противном случае вам может понадобиться использовать конструктор, который принимает nameOrConnectionString.

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

Строка подключения является допустимой строкой подключения SQL, но вам нужна строка подключения Entity Framework.

При создании модели EF создайте новую строку подключения с нуля.Это решит эту проблему.

Вы можете посмотреть на новое соединение в вашем файле web.config, и вы увидите, что соединение Entity содержит дополнительные метаданные как часть строки соединения и переносит строку соединения SQL.

ОБНОВЛЕНИЕ:

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

<add name="MyDatabaseEntities" connectionString="metadata=res://*/Models.MyDatabase.csdl|res://*/Models.MyDatabase.ssdl|res://*/Models.MyDatabase.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=SERVER;initial catalog=MyDatabase;persist security info=True;user id=userid;password=password;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

Однако вам следуетПозвольте Visual Studio создать для вас строку подключения.

...