当我们通过 NServiceBus 发送包含完整异常堆栈跟踪的消息时,我们会得到以下 NHibernate 异常:
Z Error dehydrating property value for
NServiceBus.TimeoutPersisters.NHibernate.TimeoutEntity.Headers NHibernate.PropertyValueException NHibernate.HibernateException NServiceBus.Core
at NServiceBus.Unicast.Transport.Transactional.TransactionalTransport.ProcessMessage(TransportMessage m)
at NServiceBus.Unicast.Transport.Transactional.TransactionalTransport.ReceiveMessage()
at NServiceBus.Utils.TransactionWrapper.RunInTransaction(Action callback, IsolationLevel isolationLevel, TimeSpan transactionTimeout)
at NServiceBus.Unicast.Transport.Transactional.TransactionalTransport.Process()
它与消息字段的长度有关,但似乎是内部 NServiceBus 问题。我们使用 NServiceBus v3.2.4
消息类如下所示:
public class ExceptionOccuredCommand : ICommand
{
public string Message { get; set; }
public string Details { get; set; }
public DateTime ExceptionDate { get; set; }
public string UserName { get; set; }
public string MachineName { get; set; }
public string ApplicationName { get; set; }
public string ErrorQueue { get; set; }
//public string SourceQueue { get; set; }
public string MessageId { get; set; }
}
如何解决这个问题?