次のコードはアプリケーションをクラッシュさせ、エラーは検出されず、を呼び出すとアプリケーションは単にシャットダウンします。 私が実際にやろうとしているのは、単体テストを実行することです。このコードは、きれいな例を提供するための抽象的なものです。対応するコードをunittestとして実行すると、スレッドが異常終了しているというエラーメッセージが表示されます。このコードは、MassTransitナゲットパッケージのバージョン3.5.6を使用しています。CreateUsingInMemoryバスで公開するとアプリケーションが破損する
私が間違っていることを誰も見ることができますか?あなたの非同期メソッドのために
using System;
using System.Threading.Tasks;
using MassTransit;
namespace CustomerService.Console
{
class Program
{
public static void Main(string[] args)
{
Task.Run(() => PerformMassTransitTest()).GetAwaiter().GetResult();
}
public static async void PerformMassTransitTest()
{
var busControl = Bus.Factory.CreateUsingInMemory(config =>
{
config.ReceiveEndpoint("myQueue", endpoint => { endpoint.Consumer<TestMessageConsumeer>(); });
});
try
{
await busControl.StartAsync();
await busControl.Publish(new TestMessage());
System.Console.ReadKey();
}
catch (Exception err)
{
System.Console.WriteLine(err);
}
System.Console.ReadLine();
}
}
public class TestMessage
{
}
public class TestMessageConsumeer : IConsumer<TestMessage>
{
public Task Consume(ConsumeContext<TestMessage> context)
{
System.Console.WriteLine("Consuming");
return Task.FromResult("Consumeed");
}
}
}
ありがとう、完璧な、時々あなたはすべての木のために森を見ない:)魅力のように動作します! –
@MorganArvander答えを受け取ってupvoteすることができればいいです:) –