C# 发布解决方案时连接字符串不起作用
发布项目时,出现以下错误: System.Data.SqlClient.SqlException(0x80131904):用户登录失败 “服务器用户名”。在 System.Data.SqlClient.SqlInternalConnectionDS..ctor(DbConnectionPoolIdentity 标识,SqlConnectionString 我收到错误的原因是因为我正在对该连接字符串使用windowns身份验证。它在我的本地计算机上运行良好,但当我发布具有该站点的不同服务器时,它会给我该错误。它应该使用windowns身份验证,因为这不是我在该服务器上发布的第一个应用程序,所以我不了解d为什么当它连接到该服务器“thisserver”时,它没有使用正确的windowns身份验证进行连接C# 发布解决方案时连接字符串不起作用,c#,asp.net,sql-server,C#,Asp.net,Sql Server,发布项目时,出现以下错误: System.Data.SqlClient.SqlException(0x80131904):用户登录失败 “服务器用户名”。在 System.Data.SqlClient.SqlInternalConnectionDS..ctor(DbConnectionPoolIdentity 标识,SqlConnectionString 我收到错误的原因是因为我正在对该连接字符串使用windowns身份验证。它在我的本地计算机上运行良好,但当我发布具有该站点的不同服务器时,它会
<add name="wfserver"
connectionString="Server=thisserver;Database=thisdatabase;Integrated Security=True;MultipleActiveResultSets=True;Trusted_Connection=True;"
providerName="System.Data.SqlClient" />
您是否在本地发布站点?如果是,那么您使用什么从SSMS访问SQL Server都不会有问题。如果您发布到其他位置,则我将创建一个数据库名和密码,并替换您Webconfig CNConnectionString 在短消息中,创建一个类似sa的帐户和密码。请尝试以下操作。 “服务器=myServerAddress;数据库=myDataBase;用户Id=myUsername;
Password=myPassword;“这是个愚蠢的问题,但您是否检查过“服务器用户名”有权访问数据库?它肯定不是您在本地计算机上使用的同一用户。您的web服务器是什么?您必须授予对
thisdatabase
上IIS应用程序池的访问权限。该用户将IIS APPPOOL\AppPoolName
更改为运行您的应用程序的实际应用程序池名称
// using (SqlConnection conn = new SqlConnection(connectionString))
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["wfserver"].ToString()))
{
"select * from mytable where year = @yearnumber ";
SqlDataAdapter sda = new SqlDataAdapter(query, conn);
sda.SelectCommand.Parameters.AddWithValue("@yearnumber", year);
DataTable dt = new DataTable();
sda.Fill(dt);
List<workflowMonthly> modelList = new List<workflowMonthly>();
foreach (DataRow row in dt.Rows)
{
var model = new workflowMonthly()
{
WorkflowName = row["WorkflowName"].ToString(),
...
};
modelList.Add(model);
}
return modelList;
}
@User.Identity.Name (shows correct windows authentication)
@using (Html.BeginForm("page", "Reports", FormMethod.Post, new { id = "commentForm", role = "form" }))
{}