我有一个端点,它有一个执行一些FTP工作的消息处理程序。 由于ftp进程可能需要一些时间,我使用TransactionScopeOption.Suppress封装了TransactionScope中的ftp方法,以防止事务超时异常。NServiceBus - 在消息处理程序中使用TransactionScopeOption.Suppress时出现的问题
这样做摆脱了超时异常,但处理程序被解雇了5次 (重试次数设置为5在我的配置文件)
文件已ftp'd确定,但他们只是FTP” d 5次。
处理程序看起来像10或11分钟后重新启动。
一些测试代码如下:
public void Handle(FtpMessage msg)
{
using (TransactionScope t = new TransactionScope(TransactionScopeOption.Suppress))
{
FtpFile(msg);
}
}
任何帮助将不胜感激。
谢谢。
来做交易的处理有任何形式的内置的超时,如果是的话,默认的超时时间,并可以将其进行修改? – 2010-09-13 17:15:01
@David:在配置MsmqTransport(使用v2.0)时只需设置TransactionTimeout在主干上,这已更改为“TransactionalTransport”。注意最大值受到machine.config中指定内容的限制 – 2010-09-13 17:26:50
感谢您的支持。我会尝试修改machine.config并指定TransactioTimeout并看看它是如何发生的。 – IGoor 2010-09-14 08:20:28