我在集线器上有以下代码,如果断开连接,该代码应该更新数据库上的标志。在VS2017中进行调试时,我可以看到它正常运行,并且在关闭页面时触发了该事件。但是在客户端上使用时,我尝试通过“拉电缆”来模拟断开连接,但不更新标志。 我可以从浏览器的控制台日志中看到客户端已从集线器断开连接(30秒后)。 谁能建议可能是问题所在。我正在使用来自nuget的最新版本的signalR
public override Task OnDisconnected(bool stopCalled)
{
string connectionId = Context.ConnectionId;
DeleteConnectiondb(connectionId);
return base.OnDisconnected(stopCalled);
}
public String DeleteConnectiondb(string connectionid)
{
String IPRadionConnectionString = ConfigurationManager.ConnectionStrings["dbIPRadioConnectionString"].ConnectionString;
try
{
using (MySqlConnection IPdatabaseConn = new MySqlConnection(IPRadionConnectionString))
{
IPdatabaseConn.Open();
MySqlCommand mySQLcommandUpdate = new MySqlCommand("UPDATE tblRegistrations SET " + "active='0' " + "WHERE " + "connectionid=@connectionid", IPdatabaseConn);
mySQLcommandUpdate.Parameters.Add(new MySqlParameter("@connectionid", connectionid));
using (MySqlDataReader myReader1 = mySQLcommandUpdate.ExecuteReader())
{
myReader1.Close();
}
IPdatabaseConn.Close();
return null;
}
}
catch (Exception ex)
{
return ex.ToString();
}
}