Sql server 正在尝试授予ASP.NET对我的书中的示例数据库的访问权限

Sql server 正在尝试授予ASP.NET对我的书中的示例数据库的访问权限,sql-server,iis-7,asp.net,Sql Server,Iis 7,Asp.net,我正在尝试设置这本书以在IIS下运行数据库应用程序,并授予 ASP.NET访问数据库。这本书的名字是: Murach的ASP.NET 4 Web编程与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 Pr

我正在尝试设置这本书以在IIS下运行数据库应用程序,并授予 ASP.NET访问数据库。这本书的名字是:

Murach的ASP.NET 4 Web编程与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不太了解。有人帮我做这个吗 这项工作将受到极大的赞赏。我也会通过搜索来尽我的职责 谷歌,但如果有人能解释为什么这不起作用,那就太不可思议了

这是我试过的。。。仍然没有运气:

IIS 7正在尝试使用IIS应用程序池标识访问SQL数据库

因此,必须首先授予IIS 7应用程序池对SQL server的访问权限

要做到这一点,请进入SQLServerManagementStudio->服务器实例->安全->登录->新登录

登录名将为IIS APPPOOL\ASP.NET v4.0。这是因为每次您在IIS7中创建应用程序池时,它都会创建一个与您的应用程序池使用相同名称的标识。在您的情况下,您使用的是asp.net 4附带的默认应用程序池

然后在数据库上,转到安全->登录->新建登录,给它一个别名,然后选择在上一步IIS APPPOOL\ASP.NET v4.0中添加的用户对象,然后给它db_所有者或任何您需要的模式/角色权限

当我尝试上述方法时,我得到的只是一个错误:

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

我也有这个问题。您必须首先在SSMS->Security->Logins中为IIS APPPOOL\ASP.NET v4.0创建登录,而不是直接在目标数据库上


见我找到的这一页: 

只需更改sql脚本即可消除IIS APPPOOL\ASP.NET v4.0 grant命令,并将连接字符串更改为现有用户。不要把头撞到墙上。

我知道这是一条老线索,但我今天在同一本书的最新版本上也遇到了同样的问题

书籍:Murach ASP.NET 4.5 web编程与C 2012

问题:在设置书本文件期间,grant_access脚本返回以下错误:

找不到Windows NT用户或组“IIS APPPOOL\ASP.NET v4.5”。检查 请再说一遍这个名字

我的设置:笔记本电脑是运行IIS 8.5和VS2013 Premium的Windows 8.1

为了解决这个问题,我更新了grant_访问脚本

更改“IIS APPPOOL\ASP.NET v4.5”的所有事件 至:“IIS APPPOOL\.NET v4.5”

这是IIS管理器中应用程序池中的正确拼写。如果你的版本与我的不同,你应该在你的机器上验证拼写

现在再次运行脚本,它应该可以工作了

先决条件:我必须在特定设置上注册asp.net;使用下面的链接

dism.exe/Online/Enable Feature/all/FeatureName:IIS-ASPNET45