我正在尝试将网站从 SQL Server 2008 Express 迁移到 SQL Server Web,但该网站无法访问数据库。事实上,Express 只用于从 Visual Studio 的内置 Web 服务器运行网站,所以我不确定配置是否在成熟的 IIS 7 下运行良好。无论如何,当我尝试访问页面时使用 Linq to Entities(需要网站连接到数据库)时,出现错误“'IIS AppPool\ASP.NET v4.0' 登录失败”。因此,我打开了 SQL Server Management Studio,并尝试为用户添加登录名,但我收到一条消息,指出“未找到 Windows NT 或用户组 '*****\Asp.Net v4.0'” . 即使在我要求 Management Studio 检查用户名之后,也会发生这种情况,它已成功完成。有人能告诉我我做错了什么吗?此外,我也愿意接受其他建议......一切都在同一台服务器上运行,因此没有远程连接。出于这个原因,如果可能的话,我很想使用 Windows 身份验证。
小智 7
IIS 7 正在尝试使用 IIS 应用程序池标识来访问您的 SQL 数据库。
因此,您必须首先授予 IIS 7 应用程序池访问 SQL 服务器的权限。
为此,请进入 SQL Server Management Studio -> Server Instance -> Security -> Logins -> New Login
登录名将是“IIS APPPOOL\ASP.NET v4.0”。这是因为每次您在 IIS7 中创建应用程序池时,它都会创建一个与您的应用程序池使用相同名称的标识。在您的情况下,您使用的是 asp.net 4 附带的默认应用程序池。
然后在您的数据库上,转到 Security -> Logins -> New login ,给它一个别名,然后选择您在上一步中添加的用户对象(IIS APPPOOL\ASP.NET v4.0),然后给它 db_owner(或无论您的需求是什么)架构/角色权限。
| 归档时间: |
|
| 查看次数: |
15793 次 |
| 最近记录: |