我有一個端點,它有一個執行一些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