Попытка предоставить доступ ASP.NET к образцу базы данных из моей книги - PullRequest
2 голосов
/ 17 августа 2011

Я пытаюсь настроить эту книгу для запуска приложений базы данных под IIS и предоставления ASP.NET доступа к базе данных.Название книги:

Веб-программирование Murach на ASP.NET 4 с использованием C # 2010 (Murach: обучение и справочная информация)

Для этого в книге было два файла:

"grant_access_windows_7_vista.bat", который запускает этот файл: "grant_access_windows_7_vista.sql"

Вот файлы соответственно:

@ECHO off

:: batch file for
:: Murach's ASP.NET 4 Web Programming with C# 2010
:: company: Mike Murach & Associates, Inc.
:: date:    March 16, 2011
:: 
:: Uses SQLCMD utility to run a SQL script that grants
:: ASP.NET access to the Halloween database.

ECHO Attempting to grant ASP.NET access to the Halloween database . . . 
sqlcmd -S localhost\ -E /i grant_access_windows_7_vista.sql
ECHO.
ECHO If no error message is shown, then access has been granted to the database.
ECHO.
PAUSE

Вот файл .sql:

use Halloween
go

sp_grantlogin 'IIS APPPOOL\ASP.NET v4.0'
go

sp_grantlogin 'IIS APPPOOL\ASP.NET v4.0'
go

sp_grantdbaccess 'IIS APPPOOL\ASP.NET v4.0'
go

sp_addrolemember 'db_owner', 'IIS APPPOOL\ASP.NET v4.0'
go

exit

Затем я запускаю запрос, включающий слово exit, и вот что я получаю:

Msg 15401, Level 11, State 1, Procedure sp_grantlogin, Line 49
Windows NT user or group 'IIS APPPOOL\ASP.NET v4.0' not found. Check the name again.
Msg 15401, Level 11, State 1, Procedure sp_grantlogin, Line 49
Windows NT user or group 'IIS APPPOOL\ASP.NET v4.0' not found. Check the name again.
Msg 15401, Level 16, State 1, Line 1
Windows NT user or group 'IIS APPPOOL\ASP.NET v4.0' not found. Check the name again.
Msg 15410, Level 11, State 1, Procedure sp_addrolemember, Line 75
User or role 'IIS APPPOOL\ASP.NET v4.0' does not exist in this database.
Msg 156, Level 15, State 1, Line 2
Incorrect syntax near the keyword 'exit'.

Я только начинающий и не очень разбираюсь в SQL или IIS.Любая помощь в создании этой работы будет очень ценна.Я также постараюсь внести свой вклад в поиск в GOOGLE, но если кто-то может объяснить, почему это не работает, это было бы фантастично.

Вот то, что я пробовал ... все еще безуспешно:

IIS 7 пытается использовать удостоверение пула приложений IIS для доступа к вашей базе данных SQL.

Поэтому сначала необходимо предоставить доступ из пула приложений IIS 7 к серверу SQL.

Для этого перейдите в SQL Server Management Studio -> Экземпляр сервера -> Безопасность -> Логины -> Новый вход в систему

Имя входа будет «IIS APPPOOL \ ASP.NET v4.0».Это связано с тем, что каждый раз, когда вы создаете пул приложений в IIS7, он создает удостоверение, которое использует то же имя, что и пул приложений.В вашем случае вы используете пул приложений по умолчанию, который поставляется с asp.net 4.

Затем в вашей базе данных перейдите в Security -> Logins -> New login, дайте ему псевдоним, затем выберите вашПользовательский объект, который вы добавили на предыдущем шаге (IIS APPPOOL \ ASP.NET v4.0), затем предоставьте ему db_owner (или что вам нужно) привилегии схем / ролей.

Все, что я получил, было этой ошибкойкогда я попробовал вещи выше:

"IIS APPPOOL\ASP.NET v4.0" is not a valid name because it contains invalid characters. (Microsoft SQL Server, Error: 15006

Ответы [ 3 ]

2 голосов
/ 17 августа 2011

У меня тоже была эта проблема. Сначала необходимо создать имя входа для «IIS APPPOOL \ ASP.NET v4.0» в SSMS-> Security-> Logins, а не непосредственно в целевой базе данных.

См. Эту страницу я нашел: http://blog.sqlauthority.com/2009/08/20/sql-server-fix-error-cannot-open-database-requested-by-the-login-the-login-failed-login-failed-for-user-nt-authoritynetwork-service/

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

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

Книга : веб-программирование на Murach ASP.NET 4.5 с использованием C # 2012

Проблема : При настройке файлов книг сценарий grant_access возвращает эту ошибку:

Пользователь или группа Windows NT 'IIS APPPOOL \ ASP.NET v4.5' не найдены. Проверьте имя снова.

Мои настройки : на ноутбуке установлена ​​операционная система Windows 8.1 с IIS 8.5 и VS2013 Premium.

Для решения этой проблемы я обновил скрипт grant_access.

Изменить все вхождения: 'IIS APPPOOL \ ASP.NET v4.5' Кому: 'IIS APPPOOL \ .NET v4.5'

Это правильное написание в пуле приложений, найденном в диспетчере IIS. (Вам следует проверить орфографию на вашем компьютере, если ваши версии отличаются от моих)

Теперь снова запустите скрипт, он должен работать.

Предварительное условие : Мне пришлось зарегистрировать asp.net на моем конкретном устройстве; использовал ссылку ниже.

ASP.NET 4.5 не был зарегистрирован на веб-сервере

dism.exe / В сети / Включить-функцию / все / Имя-функции: IIS-ASPNET45

0 голосов
/ 21 августа 2011

Просто измените сценарий sql, чтобы исключить команды предоставления IIS APPPOOL \ ASP.NET v4.0 и измените строку подключения для существующего пользователя.Не бейся головой о стену.

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