0

MVC4 アプリで自己ホスト型の NSB 3.2.8 を実行しています。これが私の構成です。

Configure.With()
.DefiningMessagesAs(t => t.Namespace != null && namespaces.Contains(t.Namespace))
.CastleWindsorBuilder(container)
.XmlSerializer()
.Log4Net()
.MsmqTransport()
    .IsTransactional(true)
    .IsolationLevel(IsolationLevel.ReadUncommitted)
    .PurgeOnStartup(false)                  
.UnicastBus()
.ImpersonateSender(false)
.CreateBus()
.Start();

コントローラーに依存関係を追加IBusしてキューにメッセージを送信できますBus.SendLocal()が、キューが読み取られておらず、log4net ログ ファイルが作成されていません。

4

2 に答える 2

5

どのキューから読み取るかについては言及していません。MVCでホストされるアプリにはIConfigureThisEndpointエンドポイント名を推測するクラスがないため、その.DefineEndpointName("MyEndpoint")直後に使用する必要Configure.With()があります。これにより、該当する場合、入力キューの名前が設定されます。

私が見ているもう1つの問題は、MVCアプリでメッセージを処理する意図を宣言する.UnicastBus()ために電話をかける必要があるということです。.LoadMessageHandlers()多くの場合、Webアプリケーションは送信専用のエンドポイントになるため、入力キューを作成したり、そこからのメッセージを処理したりする必要はありません。このメソッドを呼び出すと、タイプのメッセージハンドラーがスキャンされ、キューからの読み取りが開始されます。

于 2012-10-02T15:55:30.277 に答える
0

使う必要があると思いますConfigure.WithWeb()

また、エンドポイントの名前をどのように定義しますか?

于 2012-10-02T07:56:02.900 に答える