【问题标题】:Fast Page Refresh Cause Server To Crash For A While快速页面刷新导致服务器崩溃一段时间
【发布时间】:2021-08-04 18:41:03
【问题描述】:

我正在使用带有 MSSQL 数据库的 reactjs 和 ASP.NET WEB API。 问题是,我想在使用 useEffect 加载主页时获取一些数据。

在我的情况下,它的 6 个一个接一个地获取。
当我运行该页面时,一切正常。我可以刷新并再次获得结果,但是有一个错误,当我尝试刷新时,比如说 10 次,真的很快就会向 F5 按钮发送垃圾邮件。

我在 chrome 控制台上从服务器得到的结果是 500 Internal Error,在 Postman 上的错误是必须关闭连接。

我只需等待大约 30 秒,然后再次刷新,一切正常。 我检查了 Web API 中的所有功能,最终连接关闭。

只有当我刷新垃圾邮件时才会发生这种情况。我尝试使用手机刷新使服务器崩溃,但我做不到 - 速度不够快。

【问题讨论】:

    标签: reactjs performance fetch refresh webapi


    【解决方案1】:

    我修好了! 我仍然会感谢有人解释为什么会发生这种情况。 谢谢。

    //Code That Didn't Work
                try
                {
                    string ProcedureName = "GetUserById";
                    SqlCommand command = new SqlCommand(ProcedureName, connection);
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.AddWithValue("@UserID", UserID);
                    connection.Open();
                    SqlDataReader reader = command.ExecuteReader();
                    User user = new User();
                    while (reader.Read())
                    {
                        user.UserID = int.Parse(reader["UserID"].ToString());
                        user.FirstName = reader["FirstName"].ToString();
                        user.LastName = reader["LastName"].ToString();
                        user.Username = reader["Username"].ToString();
                        user.Email = reader["Email"].ToString();
                    }
                    connection.Close();
                    if (UserID != user.UserID)
                        throw new Exception();
                    return user;
                }
                catch (Exception ex)
                {
                    if (connection.State == ConnectionState.Open)
                        connection.Close();
                    throw ex;
                }

    //The Code That Does Work
    try
                {
                    using (SqlConnection con = new SqlConnection(connectionString))
                    {
                        string ProcedureName = "GetUserById";
                        SqlCommand command = new SqlCommand(ProcedureName, con);
                        command.CommandType = CommandType.StoredProcedure;
                        command.Parameters.AddWithValue("@UserID", UserID);
                        command.Connection.Open();
                        SqlDataReader reader = command.ExecuteReader();
                        User user = new User();
                        while (reader.Read())
                        {
                            user.UserID = int.Parse(reader["UserID"].ToString());
                            user.FirstName = reader["FirstName"].ToString();
                            user.LastName = reader["LastName"].ToString();
                            user.Username = reader["Username"].ToString();
                            user.Email = reader["Email"].ToString();
                        }
                        if (UserID != user.UserID)
                            throw new Exception();
                        return user;
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      相关资源
      最近更新 更多