我用VS2010建立ASP.NET 网站。有一个网页使用了GridView连接SQL数据库。在VS下调试可以通过。但是。。。

2024-12-02 19:31:53
推荐回答(5个)
回答1:

这个问题其实很简单,你的 SQL 连接字符串是 Windows 身份验证模式,改成 SQL 身份验证模式就可以了(“Data Source=...;Initial Catalog=...;User ID=...;Password=...”)。

错误原因的简述:
你在 VS 运行以及调试的时候,你的身份是 Administrators 组,因此连接 SQL Server 没有问题(默认情况下 MSSQL 允许 Administrators 组用户访问,而且为 SA 权限),而你发布到 IIS 后,出于安全考虑 IIS 可不是以“Administrators”组运行了,是以“IUSR_XXX”开始的账号运行,该账号 MSSQL 不认可,因此发生错误。
注1:IUSR_XXX 的 XXX 通常为机器名称,每台机子可能都不一样。
注2:报错所提及的用户“IUSR”,实际是指 IUSR_XXXXX 用户。
解决方法:
1)更改连接字符串为 SQL Server 身份验证方式(强烈推荐)
2)配置 IIS 站点,在“安全”设置里面设置以 Administrator 账号运行(不推荐)
3)配置 SQL Server 为 IUSR_XXX 授权登录,并允许访问数据库

回答2:

一种原因是你的连接字符串有问题;第二种是数据库设置的问题。数据库是否运行远程访问
第一种可能性比较大
Data Source=连接数据库实例名称;Initial Catalog=数据库名;User ID=账号;Password=密码
可以把你的连接字符串贴出来更清楚解答你的问题

回答3:

两种方法:
一:你的数据库连接字符串写的是用系统身份登录吧, 把 数据库连接字符串,改为 user id= xxxx;password=xx的形式 ;

二。 NT AUTHORITY\IUSR 是IIS应用程序池的用户标识, 你可以改为 本地系统(Local System),应该就可以了(前提是数据库设置了混合模式登录)

回答4:

是IIS配置错误。选择你发布站点的应用程序池,然后右键-高级设置-然后选择标识,会进入应用程序池标识界面-然后选择LocalSystem。这样就可以了。
第二种方式时,在你网站使用的数据库中,创建一个新用户,并且给予Dbowner的权限,然后在配置文件中用sql方式登录。

回答5:

在SQL SERVER里把登录选项设为混合,写连接串时加上用户名密码。
在web.config文件中