Попытка присоединить базу данных с автоматическим именем для файла .mdf не удалась - PullRequest
6 голосов
/ 05 января 2012

В настоящее время я создаю проект веб-приложения в Visual Studio 2010, и до недавнего времени не требовалось использовать скаффолд-код для членства, пользователей и ролей и т. Д., Который хранится в файле базы данных ASPNETDB.mdf.Я выполнял проект на веб-сервере Visual Studio, IIS Express (из Visual Studio), а также IIS7.5 без проблем.

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

Попытка присоединить базу данных с автоматическим именем для файла C: \ Users \ Пользователь \ Documents \ COMP6059 \ PomumV2 \ PomumV2 \ App_Data \ aspnetdb.mdf не удалось.База данных с тем же именем существует, или указанный файл не может быть открыт, или он находится на общем ресурсе UNC.

Эта ошибка возникает только при использовании веб-сервера IIS Express или IIS7.5,Веб-сервер Visual Studio работает нормально.

Я следовал инструкциям от http://support.microsoft.com/?kbid=2002980 безрезультатно.

Ниже приведена строка подключения к базе данных:

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

Ошибка возникает в следующей строке файла AccountController.cs (который создается автоматически)

...  if (Membership.ValidateUser(model.UserName, model.Password)) { ...

Я где-то читал, что мне может понадобиться переместить базу данных в SQL Server Management Studio изатем подключите Visual Studio через это, но я не смог войти в базу данных.

Я хочу, чтобы это работало на IIS7.5.У кого-нибудь есть идеи как решить эту проблему?

Ответы [ 4 ]

3 голосов
/ 05 января 2012

Возможно, это проблема с учетной записью, в которой вы используете IIS и не имеете доступа к этому файлу.

Назначьте полные разрешения этой папке для учетной записи сетевой службы.

Вы можете временно попробовать «все» и посмотреть, решит ли это проблему, и работать в обратном направлении.

Также убедитесь, что он не используется другим веб-сервером (проводник процессов / sysinternals может помочь вам показать это)

1 голос
/ 05 февраля 2013

проверьте, что ваша папка не только для чтения.У меня работает

0 голосов
/ 24 мая 2016

Возникла эта проблема после переноса из VS2013 в сообщество VS2015, при попытке открыть файл .mdf базы данных проекта из папки Visual Studio 2013.Затем я скопировал проект с файлом базы данных во вновь созданную папку Visual Studio 2015, и проблема была решена.

0 голосов
/ 04 марта 2014

Похоже, что ОП решил проблему, но мне стоило пометить мое решение, так как оно может помочь другим в будущем .....

У меня была похожая проблема, когда localDB перешел в явный режим «Только чтение» на живом сервере, но нормально работал на моем локальном ноутбуке разработчика.

После прочтения многочисленных постов, подобных этому, и попытки найти все, что я смог найти, он все равно не сработал.

Случайно я вошел в IIS на работающем сервере и заметил, что было идентифицировано 3 соединения с базой данных. 2 были унаследованы - я не знаю, откуда - и третий был объявлен локально (например, на сайте web.config).

Я удалил 2 унаследованных соединения и, вуаля! Теперь работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...