运行MVC框架后可能会提示“用户 'IIS APPPOOL\IdealTest' 登录失败”
详细堆栈信息如下
说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 用户 'IIS APPPOOL\IdealTest' 登录失败。 源错误: 行 31: { 行 32: var query = from user in container.T_SYSTEM_USER where user.USER_NAME == username select user; 行 33: return query.FirstOrDefault(); 行 34: } 行 35:
经过多方查找,找到了解决方案
1.查看项目web.config文件中的数据库连接字符串
Integrated Security=True;//集成验证模式
2.打开iis管理器,查看项目的应用程序池,确实为集成验证模式
发现其标识列中为ApplicationPoolIdentity,问题就出在这里了
3,右键打开应用程序池中该项目的高级设置,将设置中的 标识 选项打开,选择账户为 NetWorkService ,点击确定,这样iis设置就完成了
4,查看sql中用户账户是否存在NetWorkService,方法:
1)打开sql管理器,选择,【安全性】-【登录名】,查看是否存在NetWorkService,若不存在,则添加之
2)添加账户方法:右键【登录名】,选择【新建登录名】,在弹出的对话框中的右边有登录名输入框,点击右侧的【搜索】,在弹出的【选择用户或组】中点击【高级】,再点击【立即查找】,找到NetWorkService用户名,点击确定。 然后点击左侧的【服务器角色】,将publick选择框打上,点击【用户映射】,将你项目中用到的数据表前 的勾打上,点击【确定】即可。
5,再次打开iis ,重启该项目,点击浏览,这样登录就ok了,呵呵,希望能帮到你。