[英]SQL Server error in IIS asp.net web page
今天是个好日子! 我遇到了一个问题,我发现我不是唯一拥有这种“异常” SQL Exception的人。 但是,我做了发现的所有事情,并得到了相同的结果。 所以,请让我介绍我的问题。
我一直在asp.net Web应用程序中工作。 在Visual Studio 2015(社区版本)中开发。 在我的项目中,我有一些到本地数据库的SQL连接(与项目在同一台计算机上)。 当我单击“调试”(使用我最喜欢的浏览器)时,一切进展顺利。 我可以进行查询(选择,插入,更新等)。 现在,我想在自己的Intranet中将其公开(我的cow缩者也希望与此应用程序一起工作)。 因此,我将项目文件夹移至
C:\\的Inetpub \\ wwwroot文件
是的,已经配置了IIS网站(我认为正确,我还有另一个Intranet应用程序运行良好!)
我的网页中的“默认”页面是Login.aspx,当我尝试使用正确的键(用户名和密码)进行访问时,SQL向我显示错误。
无效的登录尝试。 数据库问题.System.Data.SqlClient.SqlException(0x80131904):使用“ IIS APPPOOL \\ SADI”的本质错误。 zh-cn System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity身份,SqlConnectionString connectionOptions,SqlCredential凭据,对象providerInfo,字符串newPassword,SecureString newSecurePassword,布尔型redirectedUserInstance,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData,DbConnectionFaultHandle,Enable,访问方法.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions选项,DbConnectionPoolKey poolKey,对象poolGroupProviderInfo,DbConnectionPool池,DbConnection owningConnection,DbConnectionOptions userOptions) DbConnectionOptions userOptions)System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject,DbConnectionOptions userOptions,DbConnectionIn ternal oldConnection)zh_cn System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject,DbConnectionOptions userOptions,DbConnectionInternal oldConnection)zh-CN System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,UInt32 waitForMultipleObjectsTimeout,Boolean allowCreate,布尔的OnlyCheckCheckOption, )System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,TaskCompletionSource
1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) en System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource
DbConnectionInternal&connection)zh-CN System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection externalConnection,DbConnectionFactory connectionFactory,TaskCompletio1 retry, DbConnectionOptions userOptions) en System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
1重试)System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1重试)System.Data.SqlClient.SqlConnection.Open() zh-cn SADMIN.Login.btnLog_Click(对象发送方,EventArgs e)zh:C:\\ Users \\ MyUser \\ Documents \\ Visual Studio 2015 \\ Projects \\ MyProject \\ MyProject \\ Login.aspx.cs:line 43 ClientConnectionId:6cc4ef30-4720-4c45-ba87 -d85f39804685错误编号:18456,状态:1,类别:14 Enviar
如果您想知道...这是我的第43行:
conn.Open();
这是我在Login.aspx中的BackCode
try
{
SqlConnection conn = new SqlConnection(@"Integrated Security=SSPI;Persist Security
Info=False;User ID=sa;Initial Catalog=MyDatabase;Data
Source=PCUsername\SQLInstance");
SqlCommand cmd = new SqlCommand();
SqlDataReader reader;
cmd.CommandText = "spcLoginValidate";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@username", SqlDbType.VarChar).Value = txtusername.Text;
cmd.Parameters.Add("@passw", SqlDbType.VarChar).Value = txtpassword.Text;
cmd.Connection = conn;
conn.Open();
reader = cmd.ExecuteReader();
while (reader.Read())
{
idRole = Convert.ToInt32(reader[0].ToString());
Session["User"] = reader[1].ToString();
Session["ID"] = idRole;
}
reader.Close();
conn.Close();
lblError.Visible = true;
}
catch (Exception ex)
{
lblError.Text = "Invalid login attempt. Database issue." + ex;
lblError.Visible = true;
}
在Catch部分中,我有labelError和SQL Exception,在该标签中,我的网页向我显示了我之前给您的错误。
我的SQL Server服务正在运行,所以我不知道该怎么办! 你们的任何帮助都会很棒! 我已经尝试解决此问题3天了,现在仍然可以解决。
您需要授予IIS AppPool \\ SADI帐户对数据库的访问权限, 或者禁用集成安全性并为sa
用户帐户添加密码。
创建SQL Server登录名和数据库用户: https : //technet.microsoft.com/zh-cn/library/aa337545(v= sql.110).aspx
错误是自我解释。 您的应用程序池帐户对SQL数据库没有足够的权限。
你可以:
另外,请检查web.config文件中是否禁用了用户模拟(如果未禁用,则可能会导致此类问题)
好吧,经过4天的搜索有关此问题的信息。 而且仍然不知道原因。
毕竟,我找到了我需要的东西,从而解决了我的问题。 我只是在SQL Server的查询中运行了这句话(在我的数据库内部)
exec sp_grantlogin 'IIS APPPOOL\DefaultAppPool'
use yourDB exec
sp_grantdbaccess 'IIS APPPOOL\DefaultAppPool'
特别感谢Moho和Steve B,您的回答对于找到解决方案至关重要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.