Ошибка автоматического создания файла базы данных SQLExpress - PullRequest
1 голос
/ 20 сентября 2011

Я хотел создать сайт asp.net с VS 2010, у меня есть sql server 2008 с использованием логина sa, когда я пытался зарегистрироваться на сайте с элементами управления входом, я получил эту ошибку:

* Ошибка автоматического создания файла базы данных SQLExpress:

Строка подключения указывает локальный экземпляр Sql Server Express с использованием расположения базы данных в каталоге App_Data приложения.Поставщик попытался автоматически создать базу данных служб приложений, поскольку поставщик определил, что база данных не существует.Следующие требования к конфигурации необходимы для успешной проверки существования базы данных служб приложений и автоматического создания базы данных служб приложений:

1 - если приложение работает в Windows 7 или Windows Server 2008R2, необходимо выполнить специальные шаги по настройке:необходимо включить автоматическое создание базы данных провайдера.Дополнительная информация доступна по адресу: http://go.microsoft.com/fwlink/?LinkId=160102. Если каталог приложения_данных приложения еще не существует, учетная запись веб-сервера должна иметь права на чтение и запись в каталог приложения.Это необходимо, поскольку учетная запись веб-сервера автоматически создает каталог App_Data, если он еще не существует.

2- Если каталог App_Data приложения уже существует, учетной записи веб-сервера требуется только доступ на чтение и запись к приложению.Каталог App_Data.Это необходимо, поскольку учетная запись веб-сервера будет пытаться проверить, что база данных Sql Server Express уже существует в каталоге App_Data приложения.Отмена доступа для чтения в каталоге App_Data из учетной записи веб-сервера не позволит провайдеру правильно определить, существует ли база данных Sql Server Express.Это приведет к ошибке, когда провайдер попытается создать дубликат уже существующей базы данных.Доступ на запись необходим, поскольку при создании новой базы данных используются учетные данные учетной записи веб-сервера.

3- На компьютере должен быть установлен Sql Server Express.

4- Идентификатор процесса для ИнтернетаУчетная запись сервера должна иметь локальный профиль пользователя.Подробнее о том, как создать профиль локального пользователя для учетных записей компьютеров и компьютеров, см. В документе readme. *

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

Ответы [ 2 ]

0 голосов
/ 05 ноября 2015

Я получил ту же ошибку раньше, это закончилось тем, что я использовал старый класс членства

Membership.GetUser()

Эта строка была причиной ошибки.когда я его убрал, все работало нормально.

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

Хорошо, сначала прекратите использование учетной записи SA.Это наихудшая практика обеспечения безопасности.

Вручную создайте базу данных при установке (или сделайте так, чтобы клиент сделал это).Если база данных не существует, посмотрите, есть ли у вас права на создание базы данных, и если вы все же запустите оператор CREATE DATABASE, то создайте свои объекты в базе данных.Таким образом, база данных создается в правильных папках, указанных владельцем сервера, которые могут не совпадать с местоположением, в котором вы хотите установить базу данных (это их сервер, а не ваш, он отправляется туда, куда он хочет).

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