ASP.NET членство провайдер SQL Server Express - PullRequest
0 голосов
/ 23 октября 2011

Есть ли проблемы с использованием членства в ASP.NET через SQL Server Express?

Когда я использую этот код:

Roles.AddUserToRole("shah", "Admdin")

Я столкнулся с ошибкой, показанной ниже.

Конфиг:

ОС: Windows 7 64 бит.
Версия SQL Server: SQL Server Express Edition, Версия: 9.00.4035.00

connectionString="Data Source=.\sqlexpress;Initial Catalog=MShop;Integrated Security=True" 

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

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

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

If the application is running on either Windows 7 or Windows Server 2008R2, special configuration steps are necessary to enable

автоматическое создание базы данных поставщика.Дополнительная информация доступна по адресу: http://go.microsoft.com/fwlink/?LinkId=160102. Если каталог приложения App_Data еще не существует, учетная запись веб-сервера должна иметь права на чтение и запись в каталог приложения.Это необходимо, поскольку учетная запись веб-сервера автоматически создает каталог App_Data, если он еще не существует.Если каталог App_Data приложения уже существует, учетной записи веб-сервера требуется только доступ на чтение и запись к каталогу приложения App_Data.Это необходимо, поскольку учетная запись веб-сервера будет пытаться проверить, что база данных Sql Server Express уже существует в каталоге App_Data приложения.Отмена доступа для чтения в каталоге App_Data из учетной записи веб-сервера не позволит провайдеру правильно определить, существует ли база данных Sql Server Express.Это приведет к ошибке, когда провайдер попытается создать дубликат уже существующей базы данных.Доступ на запись требуется, поскольку учетные данные учетной записи веб-сервера используются при создании новой базы данных.Sql Server Express должен быть установлен на машине.Идентификатор процесса для учетной записи веб-сервера должен иметь локальный профиль пользователя.Подробнее о том, как создать локальный профиль пользователя для учетных записей компьютера и домена, см. В документе readme.

1 Ответ

1 голос
/ 23 октября 2011

Да, вы можете использовать членство в SQL Express. Я думаю, что вы не правильно настроили свои роли в web.config. Ошибка указывает, что она пытается создать базу данных, но база данных уже должна существовать, если вы пытаетесь добавить роль пользователю,

Сначала необходимо создать пользователя, а затем добавить его в роль. Если база данных не существует, либо вы сначала не создали пользователя, либо ваши роли настроены на использование базы данных, которая не существует.

...