Web アプリケーションの要求/応答モデルで MassTransit を使用しています。リクエストを送信し、レスポンスを受け取ることができます。テスト/デバッグの目的で、応答ハンドラの HandleTimeOut を 1 時間に設定しています。問題は、サーバーが応答の送信に失敗した場合です。クライアント側で何もできません (他のページにアクセスできません)。アプリケーション サーバーは、IIS がリセットされるまで、ブラウザーからの他の要求に応答しません。これは予想される動作ですか。その場合、IIS が他のページ要求に応答しない理由と、その動作を変更する方法があるかどうかについて、誰かが光を当てることができます。
バスをautofacモジュールに登録しています
builder.Register(c => ServiceBusFactory.New(sbc =>
{
sbc.UseMsmq();
sbc.VerifyMsDtcConfiguration();
sbc.VerifyMsmqConfiguration();
sbc.ReceiveFrom("msmq://localhost/MassTransit_ClientQueue");
sbc.UseBinarySerializer();
sbc.SetCreateTransactionalQueues(false);
})).As<IServiceBus>().SingletonScoped();
私のクライアントコードは次のようになります
var bus = IoC.Resolve<IServiceBus>();
bus.GetEndpoint(new Uri("msmq://localhost/MassTransit_ServerQueue"))
.SendRequest(new Message(), bus, rc =>
{
rc.HandleTimeout(new TimeSpan(1, 0, 0),
() => { });
rc.Handle<MessageResponse>(resmess =>
{
});
rc.Handle<MassTransit.Fault<Message>>
(resmess =>
{
});
});