我正在尝试设置此书以在IIS下运行数据库应用程序并授予 ASP.NET访问数据库。这本书的名字是:
Murach使用C#2010进行ASP.NET 4 Web编程(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数据库。
因此,您必须首先授予对SQL Server的IIS 7 apppool访问权限。
为此,请进入SQL Server Management Studio - >服务器实例 - >安全 - >登录 - >新登录
登录名将为“IIS APPPOOL \ ASP.NET v4.0”。这是因为每次在IIS7中创建应用程序池时,它都会创建一个与应用程序池使用相同名称的标识。在您的情况下,您使用的是asp.net 4附带的默认应用程序池。
然后在您的数据库中,转到安全性 - >登录 - >新登录,给它一个别名,然后选择你在上一步中添加的用户对象(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
答案 0 :(得分:2)
我也有这个问题。您必须首先在SSMS-> Security-> Logins中创建“IIS APPPOOL \ ASP.NET v4.0”的登录名,而不是直接在目标数据库上。
答案 1 :(得分:0)
只需更改sql脚本即可删除IIS APPPOOL \ ASP.NET v4.0 grant命令,并将连接字符串更改为现有用户。不要把头撞到墙上。
答案 2 :(得分:0)
我知道这是一个旧帖子,但我今天在同一本书的最新版本中遇到了同样的问题。
预订:使用C#2012进行Murach ASP.NET 4.5网络编程
问题:在设置图书文件期间,grant_access脚本会返回此错误:
Windows NT用户或组' IIS APPPOOL \ ASP.NET v4.5'未找到。校验 这个名字。
我的设置:笔记本电脑是运行IIS 8.5和VS2013 Premium的Windows 8.1。
为了解决这个问题,我更新了grant_access脚本。
更改以下所有内容:' IIS APPPOOL \ ASP.NET v4.5' 要:' IIS APPPOOL \ .NET v4.5'
这是在IIS管理器中找到的应用程序池中的正确拼写。 (如果您的版本与我的版本不同,您应该验证机器上的拼写)
现在再次运行脚本,它应该可以工作。
先决条件:我必须在我的特定设置上注册asp.net;使用以下链接。
ASP.NET 4.5 has not been registered on the Web server
dism.exe / Online / Enable-Feature / all / FeatureName:IIS-ASPNET45