Очень редко w3wp.exe сбой на сервере Production и анализ точек вызова в NHibernate. Запрос тривиален.NHibernate сбой IIS в простом запросе
Это ошибка, которую я получаю.
System.Reflection.TargetInvocationException: Исключение было выбрано целью вызова. System.AccessViolationException: Попытка чтения или записи защищенной памяти. Это часто является признаком того, что другая память повреждена в System.RuntimeMethodHandle.InvokeMethod (Object target, Object [] arguments, Signature sig, Boolean constructor) в System.Delegate.DynamicInvokeImpl (Object [] args) at NHibernate.Impl .ExpressionProcessor.FindValue (выражение) в p: \ nhibernate-core \ src \ NHibernate \ Impl \ ExpressionProcessor.cs: строка 228 в NHibernate.Impl.ExpressionProcessor.ProcessSimpleExpression (выражение слева, выражение справа, тип выражения ExpressionType) в p: \ nhibernate-core \ src \ NHibernate \ Impl \ ExpressionProcessor.cs: строка 492 в NHibernate.Impl.ExpressionProcessor.ProcessOrExpression (выражение BinaryExpression) в p: \ nhibernate-core \ src \ NHibernate \ Impl \ ExpressionProcessor.cs: строка 556 at NHibernate.Criterion.QueryOver
2.Add(Expression
1 выражение) в p: \ nhibernate-core \ src \ NHibernate \ Criterion \ QueryOver.cs: строка 750 at Backend.DataAccess.AccountFeatureRepo.GetAccountFeatureByIdAndCode (Int32 accountId, AccountFeatureCode accountFeatureCode) в d: \ builds \ Backend.DataAccess \ Repository \ AccountFeatureRepo.cs : линия 43
Это код.
using (var session = GetSession())
{
var result = session.QueryOver<AccountFeature>()
.Where(af => af.AccountId == accountId)
.And(af => af.FeatureCode == accountFeatureCode.ToString())
.And(af => af.ActiveYN == "Y")
.And(af => af.StartDatetime == null || af.StartDatetime < DateTime.UtcNow)
.And(af => af.EndDatetime == null || af.EndDatetime >= DateTime.UtcNow)
.OrderBy(af => af.Id).Desc
.Take(1)
.List();
return (result != null && result.Count > 0) ? result[0] : null;
}
private static ISession GetSession()
{
return SessionProvider.SessionFactory.OpenSession();
}
Я не могу воспроизвести ошибку, и я не могу придумать что-то не так с кодом. Аргументы (идентификатор учетной записи и код функции) проверяются досрочно, поэтому здесь нет мусора. Я также боюсь, что с таким крахом я смотрю на кучу коррупции, которая возникла где-то еще в коде, и эта часть все в порядке.
Спасибо! T