0

私はこの非常に単純なワークフローを持っています:
シンプルなワークフロー

ご覧のとおり、これは単純な割り当ての受信と応答の送信で構成されており、すべて受信トランザクションスコープ内にあります。

今、消費者側に私はこの単純なコードを持っています:

    static void Main(string[] args)
    {            
        using (TransactionScope scope = new TransactionScope())
        {
            Transaction t = Transaction.Current;
            t.TransactionCompleted += t_TransactionCompleted;

            TransactedServiceRef.ServiceClient cli = new TransactedServiceRef.ServiceClient();
            string aux = cli.GetData(new TransactedServiceRef.GetData() { id = 1, value = 1 });                

            Console.WriteLine(aux);
            scope.Complete();

        }            
        Console.ReadLine();

    }

    static void t_TransactionCompleted(object sender, TransactionEventArgs e)
    {
        //POINT 1
    }

さて、私の問題です。理由はわかりませんが、「ポイント1」では、トランザクションは常に中止されます!!! 例外はスローされず、エラーも、ロールバックも何もありません...それはただ中止されます...誰かが私を助けることができますか?

ところで:ポイント1で期待しているステータスはコミットされています...

4

2 に答える 2

1

質問に WCF 構成の詳細が含まれていませんか? また、適切なバインディングを使用してトランザクションを有効にしましたか?

少し前に、この件に関するブログ投稿を行いました。それが役立つことを願っています。

于 2013-02-01T17:58:11.093 に答える
0

「PersistBeforeSend」をチェックしました...チェックを外すと、すべてが期待どおりに戻りました...なぜ機能したのかわかりません...ただ機能しました...

于 2013-02-07T15:45:40.647 に答える