C#VS 2019 SQLException:代码在控制台应用程序上有效,但在WebForms应用程序上无效

时间:2019-10-14 15:27:03

标签: c#

我正在ASP.NET Webforms项目中使用VS 2019,尝试在远程SQL Server数据库上执行存储过程时遇到以下错误:

  

System.Data.SqlClient.SqlException:'无法打开登录请求的数据库“ AMSTSUFSS”。登录失败。
  用户'AMERICAS \ espinjon'登录失败。'

我可以使用SSMS中的Windows身份验证登录。另外,相同的代码在控制台应用程序中也可以正常工作,因此表单,onlick事件,发布中必定存在某些问题。...我不知道,这现在使我发疯!请帮忙。

这是代码,在行da.Fill(table);上失败:

private static System.Data.DataTable GetListOflocIds(SqlConnection Conn, DateTime pStartDate, DateTime pEndDate)
{
    System.Data.DataTable table = new System.Data.DataTable();

    using (var cmd = new SqlCommand("UBOX.SP_GetPartnerList", Conn))
    using (var da = new SqlDataAdapter(cmd))
    {
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.Add("@StartDate", SqlDbType.Date).Value = pStartDate;
        cmd.Parameters.Add("@EndDate", SqlDbType.Date).Value = pEndDate;

        da.SelectCommand.CommandTimeout = 180;
        da.Fill(table);
    }

    return table;
}

1 个答案:

答案 0 :(得分:0)

该问题可能与连接字符串有关。

Web应用程序有时会在IIS中的不同用户下运行,并且如果连接字符串未明确指出应使用Windows身份验证,则Web服务器可能会决定使用该用户的凭据。

您的连接字符串中是否有Integrated Security=true;?如果没有,添加它可能会有所帮助。

也可以在这里查看以下答案: https://stackoverflow.com/a/1642508/1936841