Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Недопустимое значение ключа "attachdbfilename". / 6 сообщений из 6, страница 1 из 1
26.06.2012, 16:38
    #37855447
Lexxxxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недопустимое значение ключа "attachdbfilename".
Пытаюсь по книжке как слепой котенок ваять проект (учебный) веб-приложения.
В букваре написано:

Вот пример строки соединения в случае применения такого подхода:
myConnection.ConnectionString = @"Data Source=localhost\SQLEXPRESS;" +
"Integrated Security=SSPT;" +
@"AttachDBFilename=|DataDirectory|\MyDB.mdf;User Instance=True";


Пишу эту строку в код и получаю сообщение Недопустимое значение ключа "attachdbfilename". При выполнении sqlConn.ConnectionString = ПисанинаИзПримера. Однако если в строке соединения указать полный путь к файлу БД (E:\Visual Studio 2010\Projects\WebApplication1\WebApplication1\App_Data\MyDB.mdf) то соединение открывается нормально. Значит проблема именно со строкой подстановки DataDirectory. Мне кажется что это наверняка часто встречающаяся проблема для начинающих пользователей и она имеет простое решение, но вот никак не пойму какое. Подскажите пожалуйста что я делаю не так?
...
Рейтинг: 0 / 0
26.06.2012, 16:52
    #37855488
Lexxxxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недопустимое значение ключа "attachdbfilename".
Есть догадка, которую нет возможности проверить. В книжке все манипуляции проводятся с SQL Server 2008 Express, а у меня SQL Server 2012 Express. Но существенно ли это?
...
Рейтинг: 0 / 0
26.06.2012, 17:35
    #37855611
Deza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недопустимое значение ключа "attachdbfilename".
LexxxxxПытаюсь по книжке как слепой котенок ваять проект (учебный) веб-приложения.
В букваре написано:

Вот пример строки соединения в случае применения такого подхода:
myConnection.ConnectionString = @"Data Source=localhost\SQLEXPRESS;" +
"Integrated Security=SSPT;" +
@"AttachDBFilename=|DataDirectory|\MyDB.mdf;User Instance=True";


Пишу эту строку в код и получаю сообщение Недопустимое значение ключа "attachdbfilename". При выполнении sqlConn.ConnectionString = ПисанинаИзПримера. Однако если в строке соединения указать полный путь к файлу БД (E:\Visual Studio 2010\Projects\WebApplication1\WebApplication1\App_Data\MyDB.mdf) то соединение открывается нормально. Значит проблема именно со строкой подстановки DataDirectory. Мне кажется что это наверняка часто встречающаяся проблема для начинающих пользователей и она имеет простое решение, но вот никак не пойму какое. Подскажите пожалуйста что я делаю не так?

Код: c#
1.
Data Source=localhost\SQLEXPRESS;Initial Catalog=[You_Db_Name];Persist Security Info=True;Trusted_Connection=true
...
Рейтинг: 0 / 0
26.06.2012, 17:56
    #37855662
Lexxxxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недопустимое значение ключа "attachdbfilename".
Deza,

Как я понял, Вы предлагаете обойтись без |DataDirectory|? Однако мне как раз интересно использовать |DataDirectory|, так как согласно букварю:
"Здесь присутствует еще одна хитрость. Имя файла начинается с | DataDirectory |.
Это автоматически указывает на папку AppData внутри каталога веб-приложения.
В таком случае не нужно задавать полный путь к файлу, который может перестать быть
корректным после перемещения веб-приложения на веб-сервер. ADO.NET всегда будет
искать файл по имени MyDB. mdf в каталоге AppData."

Конечно можно и здесь пойти обходным путем и построить путь к App_Data самостоятельно, но я вот хочу именно так, как в книжке написано! :) Тем более что в майкрософтовских букварях написано:

"Путь может быть абсолютным или относительным, заданным с использованием строки подстановки DataDirectory . При использовании строки подстановки DataDirector y файл базы данных должен существовать в каталоге, на который указывает строка подстановки.
Примечание Имена путей удаленного сервера, HTTP и UNC не поддерживаются.
Имя базы данных должно быть задано с ключевым словом database или одним из его псевдонимов, как в следующем примере:
"AttachDbFileName=|DataDirectory|\data\YourDB.mdf;integrated security=true;database=YourDatabase""

Замена сервера на 2008 (не R2) не помогла! :( Куда копать?
...
Рейтинг: 0 / 0
26.06.2012, 21:58
    #37855952
connectionstrings
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недопустимое значение ключа "attachdbfilename".
...
Рейтинг: 0 / 0
26.06.2012, 23:31
    #37856013
Lexxxxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Недопустимое значение ключа "attachdbfilename".
Кажется причина найдена. Для того чтобы нормально работало AttachDBFilename=|DataDirectory|\MyDB.mdf нужно в Data Source=localhost\SQLEXPRESS; написать вместо localhost точку, т.е. Data Source=.\SQLEXPRESS; . При использовании строки соединения с полным путем к файлу для ключа AttachDBFilename все работает нормально и с точкой, и с localhost. Вот такая вот не совсем очевидная связь.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Недопустимое значение ключа "attachdbfilename". / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]