我在 Asp.Net Core 3.1(Razor)中使用 MySQL 数据库(8.0.36 社区服务器)创建了一个 WebApp。我使用:Hangfire 1.8.14MySQL Connector 2.3.7Pomelo.EFC.MySQL 5.0.4依赖项在我的索引页上我 c...
我使用 MySQL 数据库(8.0.36 社区服务器)在 Asp.Net Core 3.1(Razor)中创建了一个 WebApp。
我用:
依赖项
在我的索引页上,我使用 HangFire 调用每 5 分钟运行一次的方法。
当我调用其他方法时,出现以下错误:
消息: System.NullReferenceException:'未将对象引用设置为对象的实例。
StackTrace: 位于 /_/src/MySqlConnector/MySqlDataReader.cs 中的 MySqlConnector.MySqlDataReader.ActivateResultSet(CancellationToken cancellationToken):第 117 行
当我检查 mySqlException 时,它为 null 并且 m_resultSet.ReadResultSetHeaderException.SourceException 给出:
无法从传输连接读取数据:由于线程退出或应用程序请求,I/O 操作已中止。
/src/MySqlConnector/Core/ServerSession.cs:line 874 在 MySqlConnector.Core.ResultSet.d__2.MoveNext() 中/_/src/MySqlConnector/Core/ResultSet.cs:第 37 行/src/MySqlConnector/Protocol/Serialization/ProtocolUtility.cs:line 421 在 MySqlConnector.Core.ServerSession.d__112.MoveNext() 位于 /在 System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError 错误,CancellationToken cancellationToken)在 System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.GetResult(Int16 令牌)在 System.Net.Security.SslStream。
1.MoveNext() at System.Net.Security.SslStream.<ReadAsyncInternal>d__214
d 1.MoveNext() 在 MySqlConnector.Protocol.Serialization.StreamByteHandler 中。 d.MoveNext() 位于 / /src/MySqlConnector/Protocol/Serialization/StreamByteHandler.cs:line 67 在 MySqlConnector.Protocol.Serialization.BufferedByteReader.d__2.MoveNext() 位于 / /src/MySqlConnector/Protocol/Serialization/BufferedByteReader.cs:line 34 在 MySqlConnector.Protocol.Serialization.ProtocolUtility.d__1.MoveNext() 位于 /
C#:
DateTime newDate = DateTime.Now;
bookings = (from i in await _context.BookingGroup2.ToListAsync().ConfigureAwait(false)
let d = DateTime.TryParseExact(i.Checkin, "yyyy-MM-dd HH:mm", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AssumeLocal, out newDate)
where (((DateTimeFrom <= newDate) && (newDate <= DateTimeTo)) && (i.UserId == _userID))
orderby newDate ascending
select i).OrderBy(s => newDate).ToList();
bookingdetails = await _context.BookingDetails.Where(i => i.UserId == _userID && Regex.IsMatch(bids, "(?:^|,)" + i.OrderID.ToString() + "(?:,|$)")).OrderBy(i => i.FirstName).ThenBy(i => i.LastName).ToListAsync().ConfigureAwait(false); //if I skip all the errors, I end up to this line, the same happens in other methods too.
我的尝试: 我尝试为所有方法设置 await 和 async,但仍然出现错误。我在 Mysql 中创建了一个 SP,并尝试使用 FromSQLRaw($'CALL ...') 进行调用,但还是出现同样的情况。