powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Недопустимое значение ключа "attachdbfilename".
6 сообщений из 6, страница 1 из 1
Недопустимое значение ключа "attachdbfilename".
    #37855447
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. Мне кажется что это наверняка часто встречающаяся проблема для начинающих пользователей и она имеет простое решение, но вот никак не пойму какое. Подскажите пожалуйста что я делаю не так?
...
Рейтинг: 0 / 0
Недопустимое значение ключа "attachdbfilename".
    #37855488
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть догадка, которую нет возможности проверить. В книжке все манипуляции проводятся с SQL Server 2008 Express, а у меня SQL Server 2012 Express. Но существенно ли это?
...
Рейтинг: 0 / 0
Недопустимое значение ключа "attachdbfilename".
    #37855611
Deza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Недопустимое значение ключа "attachdbfilename".
    #37855662
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Недопустимое значение ключа "attachdbfilename".
    #37855952
connectionstrings
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Недопустимое значение ключа "attachdbfilename".
    #37856013
Lexxxxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кажется причина найдена. Для того чтобы нормально работало AttachDBFilename=|DataDirectory|\MyDB.mdf нужно в Data Source=localhost\SQLEXPRESS; написать вместо localhost точку, т.е. Data Source=.\SQLEXPRESS; . При использовании строки соединения с полным путем к файлу для ключа AttachDBFilename все работает нормально и с точкой, и с localhost. Вот такая вот не совсем очевидная связь.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Недопустимое значение ключа "attachdbfilename".
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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