Я пытаюсь настроить эту книгу для запуска приложений базы данных под 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