asp.net недопустимое значение MVC для ключа "attachdbfilename"
в настоящее время я читаю Мэннинга "ASP.NET MVC 4 in Action" книга и попытка заставить первый пример работать.
в моем тестовом приложении я построил простую модель и создал некоторые представления. Затем я импортировал "SQL Server Compact" с помощью NuGet.
когда я, наконец, пытаюсь запустить приложение, я получаю следующую ошибку:
Invalid value for key 'attachdbfilename'
это происходит при каждом взаимодействии с базой данных (SELECT или другими операциями CRUD), которые я запускаю. Есть идеи?
9 ответов
хотя, я немного поздно, чтобы ответить на этот вопрос, но я столкнулся с той же проблемой и решил ее, изменив строку подключения, как показано ниже
<add name="MovieDBContext"
connectionString="Data Source=.;Initial Catalog=Movies;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
надеюсь, это будет полезно и для других.
Я попытался найти решение для этой конкретной ошибки без успеха.
исправлено в конце, обновив .Net Framework 4 до 4.0.2. Патч и детали можно найти вот ссылка
надеюсь, это поможет
Я думаю, что проблемы здесь-строка в интернете.config-это не правильно Согласно вашей настройке sql, строка будет работать, если вы установите что-то подобное этому
<add name="MovieDBContext"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Movies;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"
/>
Источник Данных=.\SQLEXPRESS; -- > когда-нибудь это будет источник данных=.; после этого вам нужно настроить право доступа к папке App_Data Если у тест на Window 7, щелкните правой кнопкой мыши папку. свойство Вкладка Безопасность - > добавить пользовательскую сетевую службу с полным правом
перейдите в раздел Web.настройте и измените раздел следующим образом, чтобы использовать SQLServerCE4:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0"/>
</parameters>
</defaultConnectionFactory>
</entityFramework>
Я думаю, проблема возникает только при использовании SQL Express на .NET Framework v4.0.30319 в любом случае Поддержка среды выполнения локальной базы данных SQL Server Express в SqlClient добавлена в .NET Framework update 4.0.2 read -http://support.microsoft.com/kb/2544514
поочередно используйте строку подключения, аналогичную этой
<add name="EmployeeDbContext" connectionString="Data Source=.;Initial Catalog=Employees;AttachDBFileName=|DataDirectory|\Employees.mdf;Integrated Security=True"
providerName="System.Data.SqlClient" />
<add name="myconstr" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|mydata.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
выше строка соединения давала ошибку, но как только добавлено " \ " перед именем моей базы данных ошибка была решена.
попробуйте это:
<add name="myconstr" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\mydata.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
вы используете SQL Server Compact 4.0:
убедитесь, что установлен SQL Server Compact 4.0.
установить VS 2010 SP1 Tools для SQL Server Compact.
измените строку подключения на:
<connectionStrings>
<add name="MyModelDBContext" connectionString="Data Source=|DataDirectory|mymodel.sdf" providerName="System.Data.SqlServerCe.4.0"/>
</connectionStrings>
щелкните правой кнопкой мыши на папке контроллеров и - > добавить - > контроллер
тип:
YourController
MVC-Controller with read/write ...
MyModel
new datacontext -> APP.Models.DatabaseContext
вот сообщение в блоге, которое я нашел об этой ошибке. Он немного устарел, но использует экспресс-версию sql server. MSDN Link
это сообщение в блоге говорит о том, что имя сервера базы данных sql должно быть локальным адресом, а не /sqlexpress
есть еще блоге это говорит о наличии неправильной строки подключения. Поэтому, возможно, проверьте строку подключения к базе данных. и твоя проблема может быть там.
столкнувшись с той же проблемой, я просмотрел свою строку подключения и обнаружил, что пути "UNC-style", например \MyServer\MyDBServer
are не разрешено, нужно использовать MyServer\MyDBServer
синтаксис для удаленного узла или на .\MyDBServer
синтаксис для локально размещенных серверов БД.