【问题标题】:How to fix this redirect loop?如何修复此重定向循环?
【发布时间】:2014-06-02 14:56:45
【问题描述】:

背景故事:投入到一个使用 C#、JavaScript 和 SQL 的项目中——我对这两者都没有什么经验。有一个“工作”的网站并使用代码(我的计算机上用于测试的数据库和代码的本地副本)。长期以来一直存在问题,每次我在本地运行程序时,它都会转到“真实”网站而不是我的本地副本。发现有一个重定向,当我试图通过向数据库添加一个对象来修复它时,它没有改变任何东西 - 仍然被重定向。因此,我将重定向更改为地址前面的 localhost:50000,并在尝试更改它时得到了无限循环的错误。所以我会假设数据库或与它的连接有问题。这是发生重定向的代码,但我不知道如何修复它。

// 很多代码

DataSet ds = new DataSet();
    DataTable dt1 = new DataTable();
    DataTable dt2 = new DataTable();
    DataTable dt3 = new DataTable();
    DataTable dt4 = new DataTable();
    DataTable dt5 = new DataTable();

    try
    {
        DBConnection.Open();

        DBAdapter = new MySqlDataAdapter(query1, DBConnection);
        DBAdapter.Fill(dt1);

        DBAdapter2 = new MySqlDataAdapter(query2, DBConnection);
        DBAdapter2.Fill(dt2);

        DBAdapter3 = new MySqlDataAdapter(query3, DBConnection);
        DBAdapter3.Fill(dt3);

        DBAdapter4 = new MySqlDataAdapter(query4, DBConnection);
        DBAdapter4.Fill(dt4);

        DBAdapter5 = new MySqlDataAdapter(query5, DBConnection);
        DBAdapter5.Fill(dt5);

        ds.Tables.Add(dt1);
        ds.Tables.Add(dt2);
        ds.Tables.Add(dt3);
        ds.Tables.Add(dt4);
        ds.Tables.Add(dt5);
    }
    catch (Exception ex)
    {
        Console.WriteLine("Error: " + ex.Message);
    }
    finally
    {
        DBConnection.Close();
    }

// 很多代码。

if (ds.Tables.Count > 0)
    {
        if (ds.Tables[0].Rows.Count > 0)
        {
        // Lots of code
        }
        else
        {
            HttpContext.Current.Response.Redirect("http://www.websitename.com");
        }

        if (ds.Tables[3].Rows.Count > 0)
        {
            foreach (DataRow row in ds.Tables[3].Rows)
            {
                UsersAsDealers.Add(row["Username"].ToString());
            }
        }

        if (ds.Tables[4].Rows.Count > 0)
        {
            foreach (DataRow row in ds.Tables[4].Rows)
            {
                UsersAsSellers.Add(row["username"].ToString());
            }
        }
    }
    else
    {
    HttpContext.Current.Response.Redirect("http://www.websitename.com);
    }
}

哦,这是最后一个重定向问题。 有什么想法吗?

【问题讨论】:

  • 您是否正在重定向到运行所有这些代码的同一页面?如果是这样,请不要这样做,重定向到错误页面或其他页面。
  • 您确定连接到端口 50000 吗?除非您指定端口,否则每次从 VS 运行站点时都会随机分配该端口。

标签: c# javascript mysql asp.net database


【解决方案1】:

如果与数据库的连接失败,您应该会在 VS 输出窗口中看到错误描述(请参见 Console.WriteLine("Error: " + ex.Message); 行)

如果您在 if (ds.Tables.Count > 0) 行中添加断点并检查它,您可能会从云端获取有关 Ds 对象状态的更多信息。

【讨论】:

    【解决方案2】:

    如果这是你进入后的无限循环

    本地主机:50000

    然后我假设此代码在您主页的 page_load 事件中?这意味着它会一次又一次地重定向到同一页面,因为条件

    ds.Tables.Count > 0

    不满足,请尝试在您的数据库中执行查询以查看是否有有效数据从中流出。

    【讨论】:

      猜你喜欢
      • 2012-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      相关资源
      最近更新 更多