1

HTTP PUT メソッドで DTO を受け入れ、いくつかの検証を実行してから Bus.Send()sa コマンドを実行する ASP.NET Web API を取得しました。

現在、すべてのメッセージは、構成された MSMQ エラー キューで終了しています。

私が使用しているモデルの概要として、いくつかの擬似コードを次に示します...

public HttpResponseMessage Put([FromBody]EntityModel entity)
    {
        if (ModelState.IsValid)
        {
           _bus.Send(new command());
           return Request.CreateResponse(HttpStatusCode.Accepted);
        }
        else
        {
            var msg = new HttpResponseMessage(HttpStatusCode.NotModified) { ReasonPhrase = "Error text here" };
            return msg;
        }
    }

調査の結果、Web API アクション メソッドの最後の中括弧/大括弧にブレークポイントを設定し、[コンピューターの管理] で MSMQ を確認すると、メッセージが正しいキューに入れられ、適切に形成されていることがわかります。

最後のブラケットを通過すると、メッセージはすぐにエラー キューに移動します。ブレークポイントの後に実行されている他のコードはないようです (カスタム フィルター/属性など)。

私はそれがキューがトランザクションであることと関係があり、何かがそのトランザクションを中止させていると理論付けていますが、それが何であるかを理解することはできません..

どんな助けでも素晴らしいでしょう、ありがとう、

4

1 に答える 1

0

メッセージ ハンドラ コードに障害があるようです。メッセージの処理に失敗した場合、メッセージは入力キュー (配信されたことを確認できる場所) から削除され、エラー キューに移動されます。

取り扱い上の不具合がないことを確認していただけますか?

于 2012-11-06T08:19:01.203 に答える