Я экспериментировал с ASP.Net MVC и столкнулся с проблемой, которая, вероятно, не связана конкретно с MVC. Но я не могу заставить аутентификацию в приложении MVC по умолчанию (созданном мастером при создании нового проекта MVC) работать должным образом под IIS 7 в Windows 7.
Если я работаю в среде Visual Studio, это работает, но если вместо этого я переключаю настройки на запуск под IIS, я получаю следующее исключение при попытке ввести логин или регистрацию:
Не удалось создать пользовательский экземпляр
SQL Server из-за сбоя в
получение локального пользователя
путь к данным приложения. Пожалуйста, сделай
уверен, что у пользователя есть локальный профиль пользователя
на компьютере. Соединение будет
быть закрытым.
Я считаю, что это происходит потому, что веб-сайт работает под моей учетной записью в Visual Studio, но под учетной записью IUSR в IIS. Поиски в Google по сообщению об исключении пока не помогли.
Итак, можно ли создать локальный профиль пользователя для учетной записи IUSR? Если так, то как? Что-то еще, что я должен сделать, чтобы заставить двигатель SQLExpress работать под анонимной учетной записью в IIS 7?
Я также попытался настроить веб-сайт IIS для использования моей учетной записи, но, поскольку это мой домашний компьютер, у моей учетной записи нет пароля, и похоже, что IIS не позволит веб-сайту настроить использование учетной записи без пароль. Или, так как это мой первый опыт работы с IIS 7, а конфигурация выглядит совсем не так, как в IIS 5/6, мне просто не хватает нужной настройки, которая позволит мне настроить учетную запись для использования в качестве анонимного доступа.
РЕДАКТИРОВАТЬ: Некоторая дополнительная информация. Если я очищаю папку App_Data и повторяю попытку из IIS, SQLExpress пытается создать мою базу данных и завершается неудачно, но сообщение об исключении содержит дополнительную информацию со следующими предложениями.
Автоматическое создание файла базы данных SQLExpress
ошибка:
Строка подключения указывает
локальный экземпляр Sql Server Express
используя базу данных в пределах
каталог приложений app_Data.
провайдер попытался автоматически
создать сервис приложений
база данных, потому что поставщик
определил, что база данных не
существовать. Следующая конфигурация
требования необходимы для
успешно проверить наличие
база данных служб приложений и
автоматически создавать приложение
база данных служб:
- Если каталог приложений App_Data еще не существует,
Учетная запись веб-сервера должна быть прочитана и
доступ для записи в приложения
каталог. Это необходимо, потому что
учетная запись веб-сервера будет
автоматически создавать App_Data
каталог, если он еще не
есть.
- Если каталог приложений App_Data уже существует, Интернет
учетная запись сервера требует только чтения и
доступ для записи в приложения
Каталог App_Data. Это необходимо
потому что учетная запись веб-сервера будет
попытаться проверить, что сервер Sql
Экспресс база данных уже существует в
каталог приложений App_Data.
Отмена доступа на чтение к App_Data
каталог из учетной записи веб-сервера
помешает провайдеру
правильно определить, если Sql
База данных Server Express уже
существует. Это приведет к ошибке, когда
поставщик пытается создать
дубликат уже существующего
база данных. Доступ для записи требуется
потому что учетные записи веб-сервера
учетные данные используются при создании
Новая база данных.
- Sql Server Express должен быть установлен на машине.
- Идентификатор процесса для учетной записи веб-сервера должен иметь локальный пользователь
профиль. Смотрите документ readme для
подробности о том, как создать локального пользователя
профиль для машины и домена
счета.
Я довольно широко подтвердил, что первые три предложения были удовлетворены. Четвертый, кажется, причина моих проблем, но я не могу понять, как это сделать. И хотя в предложении говорится, что есть документ readme, в котором он описан, я не смог найти этот документ.