![](/img/trans.png)
[英]System.ComponentModel.Win32Exception: The wait operation timed out from Azure VPN
[英]Simple update query caused System.ComponentModel.Win32Exception: The wait operation timed out error in C# and SQL Server
我正在嘗試創建一個忘記密碼頁面,用於驗證用戶的用戶名 email、安全問題和答案,然后再將其發送到新密碼頁面。 下面的代碼是將用戶重定向到新密碼頁面的 onClick。
protected void SubmitButton_Click(object sender, EventArgs e)
{
string email = Email.Text;
string user = UserName.Text;
string question = Question.Text;
string answer = Answer.Text;
string strCon = ConfigurationManager.ConnectionStrings["WebConfigConString"].ConnectionString;
SqlConnection con = new SqlConnection(strCon);
con.Open();
string strCheck = "SELECT * FROM ACCOUNT WHERE ID = @id AND EMAIL = @email AND SECURITYQUESTION = @question AND SECURITYANSWER = @answer";
SqlCommand cmdCheck = new SqlCommand(strCheck, con);
cmdCheck.Parameters.AddWithValue("@id", user);
cmdCheck.Parameters.AddWithValue("@question", question);
cmdCheck.Parameters.AddWithValue("@email", email);
cmdCheck.Parameters.AddWithValue("@answer", answer);
SqlDataReader dtrCheck = cmdCheck.ExecuteReader();
if (dtrCheck.HasRows)
{
Response.Redirect("newPassword.aspx?id=" + user);
}
else
{
ErrorMsg.Text = "Invalid username or email / question and answer does not match!";
}
}
下面這段代碼是newPassword的aspx頁面的表單段。
<form runat="server">
<div class="form-group">
<asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">
Password:</asp:Label>
<asp:TextBox class="form-control form-control-user" ID="Password" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"
ErrorMessage="Password is required." ForeColor="Red">*</asp:RequiredFieldValidator>
</div>
<div class="form-group">
<asp:Label ID="ConfirmPasswordLabel" runat="server" AssociatedControlID="ConfirmPassword">
Confirm Password:</asp:Label>
<asp:TextBox class="form-control form-control-user" ID="ConfirmPassword" runat="server" TextMode="Password"></asp:TextBox>
<asp:RequiredFieldValidator ID="ConfirmPasswordRequired" runat="server" ControlToValidate="ConfirmPassword"
ErrorMessage="Confirm Password is required." ForeColor="Red">*</asp:RequiredFieldValidator>
<asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password"
ControlToValidate="ConfirmPassword" ErrorMessage="The Password and Confirmation Password must match." ForeColor="Red">*</asp:CompareValidator>
</div>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ForeColor="Red" />
<asp:Button ID="SubmitButton" runat="server" Text="Confirm" class="btn btn-primary btn-user btn-block" OnClick="SubmitButton_Click"/>
</form>
這是新密碼的 onclick onclick
后面的代碼:
protected void SubmitButton_Click(object sender, EventArgs e)
{
string id = Request.QueryString["id"];
string password = Password.Text;
string strCon = ConfigurationManager.ConnectionStrings["WebConfigConString"].ConnectionString;
using (SqlConnection con = new SqlConnection(strCon))
{
con.Open();
string strChange = "UPDATE ACCOUNT SET PASSWORD = @password WHERE ID = @id";
SqlCommand cmdChange = new SqlCommand(strChange, con);
cmdChange.Parameters.AddWithValue("@id", id);
cmdChange.Parameters.AddWithValue("@password", password);
cmdChange.ExecuteNonQuery();
con.Close();
Response.Redirect("login.aspx?msg=Password updated successfully!");
}
}
但是,每當我在填寫新密碼后單擊提交時,它會凍結很長時間然后顯示此錯誤:
System.ComponentModel.Win32Exception:等待操作超時錯誤
顯然,我忘記在將用戶重定向到 newPassword.aspx 之前關閉連接,只需在重定向對我有用之前添加一個 con.Close() 即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.