我不明白为什么我的(非常简单的)代码在我的本地机器上从Visual Studio 2022和本地IIS 10上连接到sql server express(15)可以正常工作,而在我的web服务器上却不行。我相信这对你来说是一个非常简单的问题。
我尝试做的是一个简单的登录页面。Login.aspx中的代码是:
using System.Data;
using System.Data.SqlClient;
try
{
SqlConnection con = new SqlConnection(@"Data Source=BERLIN\SQLEXPRESS;Initial Catalog=membersarea; User ID=sa;Password=Test2022!");
SqlCommand sqlCmd = new SqlCommand("select * from useraccount where username=@userName and passWord=@Password", con);
sqlCmd.Parameters.AddWithValue("@userName", tbxUsername.Text.ToString());
sqlCmd.Parameters.AddWithValue("@passWord", tbxPassword.Text.ToString());
SqlDataAdapter sqlAdapter = new SqlDataAdapter(sqlCmd);
DataTable datatable = new DataTable();
sqlAdapter.Fill(datatable);
con.Open();
int i = sqlCmd.ExecuteNonQuery();
con.Close();
if (datatable.Rows.Count > 0)
{
Session["userName"] = tbxUsername.Text.ToString();
datatable.Dispose();
Response.Redirect("Content.aspx");
}
else
{
lblMessage.Text = "Benutzername oder Passwort falsch.";
lblMessage.ForeColor = System.Drawing.Color.DarkOrange;
lblMessage.Visible = true;
}
}
catch(Exception ex)
{
}
(我知道我不应该使用sa帐户来执行此操作,只是为了保持简单...我在Web服务器上做的唯一事情就是更改sql server示例的名称。Management Studio在我的Web服务器上使用此用户ID和密码工作正常。我使用Plesk安装了sql server,但我认为它在plesk中无法正常工作。使用Management Studio我可以恢复备份,查询、创建新帐户等)
我的内容.asps说嗨(包括我的名字),并显示注销按钮。如果你输入的凭据不正确,它会这样说,如果你试图去的内容页没有登录,你会被重定向到登录页。这就是我想要的。问题是,它不工作在我的网络服务器上。它只是什么都不做。没有错误消息,或其他东西。它需要一段时间,密码再次被清除,用户名仍然存在。(使用哪种凭据无关紧要。)
我不认为它出现在我代码的第一行,我不知道为什么。是否需要DLL,或者我忘记了什么?我非常肯定这绝对是初学者的问题,但我无法理解。
尝试填充一些代码来更改lblMessage,以找出问题从何处开始,但没有显示任何内容。
1条答案
按热度按时间x6h2sr281#
我想问题是从我创建项目时检查模式web表单开始的。在bin文件夹中有一个“name-of-my-project”.dll和一个“name-of-my-project”.pdb文件。这两个文件是在你重新创建项目时生成的。我很确定你们知道--我没有。或者更好的是我知道它们是生成的,但它们不是必要的。(正如我之前所写的,我正处在故事的开头。)
我猜连接字符串也存储在这个 *.pdb和/或 *.dll中。当我用有效的连接字符串为Web服务器重新创建我的项目并上传它们时-一切都按预期工作。谢谢你们的想法。