
説明/参照:
ボックス1:[ServiceContract]
各インターフェイスには、ServiceContractAttributeが適用されている必要があり、各操作にはOperationContractAttribute属性が適用されている必要があります。 ServiceContractAttribute属性を持つインターフェイス内のメソッドにOperationContractAttribute属性がない場合、そのメソッドはサービスによって公開されません。
注:属性を使用してインターフェース、メンバー、またはクラスに注釈を付ける場合、属性名から「属性」部分を削除できます。したがって、ServiceContractAttributeは次のようになります。
C#の[ServiceContract]。
ボックス2:[TransactionFlow(TransactionFlowOption.Mandatory。
サービスにはトランザクションスコープが必要です。
トランザクションはクライアントからサーバーに流れる必要があります。
注:TransactionFlow属性は、操作がトランザクションをサポートするかどうかを指定します。この属性には、次の3つの値があります。
*必須:この操作を呼び出すには、クライアントがトランザクションを作成する必要があります。
* NotAllowed:操作はトランザクションに参加できません。これは、この属性のデフォルト値です。
*許可:クライアントがトランザクションを作成した場合、操作はトランザクションに参加します。
ボックス3:[ServiceBehavior(TransactionTimeout = "00:00:30")]
インターフェイスのServiceBehaviorを定義します。操作に必要なものを定義するには、30ではなく「00:00:30」を使用します。
30秒のタイムアウト。
ボックス4:[OperationsBehaviour(TransactionScopeRequired = True)
FooメソッドをTransactionScopeRequired属性で飾る必要があります。
正しい構文は[OperationsBehaviour(TransactionScopeRequired = True)、そうではありません
[OperationsBehaviour.required]
参考資料:https://msdn.microsoft.com/en-us/library/ms731835(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/ff384250.aspx