我正在尝试在.net核心1.0中使用。我使用的是mysql连接器:https://github.com/bgrainger/MySqlConnector
我知道连接器在alpha中,但我想知道在与dapper一起使用连接器时是否有类似的问题。
这是我的简单模型:
public List<GeneralModel> GetAllLists()
{
try
{
using (DbConnection connection = new MySqlConnection("Server=localhost;Database=lists;Uid=Unnamed;Pwd=lol;"))
{
return connection.Query<GeneralModel>("SELECT * FROM lists.general").ToList();
}
}
catch (Exception)
{
throw;
}
}
这是控制器:
public IActionResult Index()
{
GeneralModel GenRepo = new GeneralModel();
return View(GenRepo.GetAllLists());
}
当我第一次转到索引页面时,它就能工作了。如果我刷新,我会得到一个“拒绝用户访问.”。我不知道是什么导致了这个错误。我不认为问题在我的代码中。
编辑:
我想问题在连接器中,因为这也是在刷新后返回错误:
List<GeneralModel> lists = new List<GeneralModel>();
using (DbConnection connection = new MySqlConnection("Server=localhost;Database=lists;Uid=Unnamed;Pwd=lol;"))
{
using (DbCommand myCommand = connection.CreateCommand())
{
myCommand.CommandText = "SELECT * FROM lists.general";
connection.Open();
using (DbDataReader myReader = myCommand.ExecuteReader())
{
while (myReader.Read())
{
GeneralModel tmpGen = new GeneralModel();
tmpGen.name = myReader["name"].ToString();
tmpGen.description = myReader["description"].ToString();
tmpGen.language = myReader["language "].ToString();
lists.Add(tmpGen);
}
}
connection.Close();
}
}
return lists;
发布于 2016-07-18 04:53:02
此错误是由MySqlConnector未正确处理封包的快速路径造成的。
MySQL服务器(版本5.6和5.7)似乎不会立即接受用户的凭据,但总是返回一个身份验证方法交换请求包。MariaDB (您正在使用的)实现了快速路径,并立即返回一个OK数据包。
连接器现在已经更新以处理此响应,并且应该停止抛出虚假的“拒绝访问”异常。修复在0.1.0-alpha09。
https://stackoverflow.com/questions/38362581
复制相似问题