2011-06-21 14 views
4

無料のMicrosoft Visual Web Developer 2010 Expressを使用して、WCFでトランザクションを開始しようとしています。それは私に "WCFサービスアプリケーション"を作成するオプションを与えるが、それは私にそれをホストするか、または異なるバインディングを設定するための多くのオプションを与えるようには見えない。私はエラーを取得するプロジェクトF5場合:Visual Studio 2010 ExpressのWCFでのTransactionFlow

At least one operation on the 'Service' contract is configured with the TransactionFlowAttribute attribute set to Mandatory but the channel's binding 'BasicHttpBinding' is not configured with a TransactionFlowBindingElement. The TransactionFlowAttribute attribute set to Mandatory cannot be used without a TransactionFlowBindingElement.

を私はweb.configファイルに*/services/service/endpoint構成で追加しようとしましたが、単に無視されるように表示されます。また、デフォルトの起動アプリケーションをWcfSvcHost.exeに変更しようとしましたが、このオプションはグレー表示されています。私はいくつかの失敗のエクスプレス版を疑うようになり始めているが、それは私がダンスであることが楽観的です。私が学ぶ必要のあるトリックはありますか、またはVisual Studio 2010のフルバージョンでこの障害を乗り越えて次のものに乗り越えるのに十分でしょうか?

ありがとうございます!

+0

あなたは私たちのサービス契約を表示することができますし、設定ファイル? –

+0

私は "WCF Service Application"のバニラの例を使用していますが、サービスコントラクトのオペレーションの1つにTransactionFlow属性を追加しました。 Web.configで定義されたサービスはありませんでした。私は反射の魔法が何をしているのか分かりませんが、wsHttpBindingでエンドポイントを設定しようとしましたが(エラーメッセージは常にBasicHttpBindingです)、私は運が無かったのです。 – Jono

答えて

6

設定とサービス契約を知らないと、ターゲットとなる回答をすることはほとんど不可能です。構成が無視されたと思われる場合は、serviceおよびendpoint/@contractで使用される名前にCLR名前空間が含まれていることを確認してください。

WCF 4は、IMHOが実際の設定を以前のものよりも大きくした簡単な構成を使用しています。あなたのWeb構成にこれを追加することでデフォルトを切り替えることができます。これは、デフォルトの代わりに、basicHttpBindingのような結合定義されて使用しなければならない問題を回避するには、

<protocolMapping> 
    <remove scheme="http" /> 
    <add scheme="http" binding="wsHttpBinding" bindingConfiguration="transactionFlowEnabled"/> 
</protocolMapping> 
<bindings> 
    <wsHttpBinding> 
    <binding name="transactionFlowEnabled" transactionFlow="true" /> 
    </wsHttpBinding> 
</bindings> 

です。

<services> 
    <service name="WcfService1.Service1"> 
    <endpoint 
     address="" 
     binding="wsHttpBinding" 
     contract="WcfService1.IService1" 
     /> 
    </service> 
</services>

と::ラディスラフの提案に

+0

あなたの答えはどちらも上です。ありがとう! – Jono

1

おかげで、私は、Web.configファイルに次のエントリを追加することでこの問題を解決することができた

<bindings> 
    <wsHttpBinding> 
    <binding transactionFlow="true"/> 
    </wsHttpBinding> 
</bindings>
+0

これは、サーバーまたはクライアントのweb.configでどのように記述しましたか? – Para

関連する問題