是否有可能在應用程序中使用NServiceBus而沒有任何輸入隊列?NServiceBus沒有輸入隊列
原因是,我有一個ASP.NET MVC應用程序,當發生某些事情時(例如,新用戶註冊)向其他應用程序發送消息。 Web應用程序從不接收任何回覆或其他消息,因此我不想讓應用程序停止運行。 msmq偷看每秒拋出異常。
是否有可能在應用程序中使用NServiceBus而沒有任何輸入隊列?NServiceBus沒有輸入隊列
原因是,我有一個ASP.NET MVC應用程序,當發生某些事情時(例如,新用戶註冊)向其他應用程序發送消息。 Web應用程序從不接收任何回覆或其他消息,因此我不想讓應用程序停止運行。 msmq偷看每秒拋出異常。
這是支持的,只需刪除msmstranport配置部分,所有應該沒問題。這工作對NServiceBus的2.0.1281.0(NET4)版本沒有的app.config目前
using NServiceBus;
namespace SendOnlyEndpoint.Custom
{
public class Program
{
static void Main(string[] args)
{
var bus = Configure.With()
.DefaultBuilder()
.XmlSerializer()
.MsmqTransport()
.UnicastBus()
.CreateBus()
.Start();
bus.Send("SendOnlyDestination",new TestMessage());
}
}
public class TestMessage : IMessage
{
}
}
更多信息上只發送端點here
我會嘗試不配置輸入隊列。 Bus.Send將使用內部出站隊列發送消息。
它不顯得那麼容易。 我試圖降低我的配置是:。 Configure.WithWeb()StructureMapBuilder(ObjectFactory.Container).XmlSerializer()UnicastBus()ImpersonateSender(假).CreateBus()的start() 和刪除。我的web.config中的MsMqTransportConfig部分,但它在Configure()方法中引發異常。 – kfuglsang 2010-07-29 12:49:08
我在ASP.NET應用程序中的一個HttpModule沒有MsmqTransportConfig部分在web.config中,並與它成功: 總線= NServiceBus.Configure.WithWeb() .Log4Net() .DefaultBuilder() .XmlSerializer() .MsmqTransport() .IsTransactional(假) .PurgeOnStartup(假) .UnicastBus() .ImpersonateSender(假) .CreateBus() 。開始(); 我希望它不是一個MVC的東西,但NSB不應該窺視隊列。 – 2010-07-29 13:43:14
我在配置過程中得到一個NullReferenceException,如果我沒有在我的webconfig中使用MsmqTransportConfig部分。 – kfuglsang 2010-07-30 07:03:08
如果我不打電話給bus.Start()我不能發送消息。 總線尚未啓動,請在嘗試使用總線之前調用Bus.Start()。 異常詳細信息:System.InvalidOperationException:總線尚未啓動,請在嘗試使用總線之前調用Bus.Start()。 第21行:public void FireAndForget(IMessage message) 第22行:第23行:_bus.Send(message); 24行:} – kfuglsang 2010-07-30 07:00:52
我錯了,開始需要被調用。編輯我的答案來反映這一點。也會檢查2.1,但鑑於它不穩定,我建議你如果遇到麻煩就轉移到2.0 – 2010-08-10 19:16:48