OperationContractAttribute.IsTerminating プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
応答メッセージが存在する場合に、そのメッセージの送信後にセッションを終了するようにサービス操作がサーバーに指示するかどうかを示す値を取得または設定します。
public:
property bool IsTerminating { bool get(); void set(bool value); };
public bool IsTerminating { get; set; }
member this.IsTerminating : bool with get, set
Public Property IsTerminating As Boolean
プロパティ値
操作によってサーバーがセッションを終了する場合は true
。それ以外の場合は false
。 既定値は、false
です。
例
次の例は、3 つの操作を指定するサービス コントラクトを実装するサービスです。 このサービスは、ステートフル接続を必要とします。 呼び出し元の最初の呼び出しが MethodOne
以外の操作である場合、チャネルは拒否され、例外がスローされます。 呼び出し元が MethodOne
を呼び出してセッションを開始した場合、呼び出し元は MethodThree
を呼び出すことでいつでも通信セッションを終了できます。
MethodTwo
は、セッション中に何度でも呼び出すことができます。
[ServiceContractAttribute(SessionMode=SessionMode.Required)]
public class InitializeAndTerminateService
{
[OperationContract(
IsOneWay=true,
IsInitiating=true,
IsTerminating=false
)]
public void MethodOne()
{
return;
}
[OperationContract(
IsInitiating=false,
IsTerminating=false
)]
public int MethodTwo(int x, out int y)
{
y = 34;
return 0;
}
[OperationContract(
IsOneWay=true,
IsInitiating=false
IsTerminating=true
)]
public void MethodThree()
{
return;
}
}
注釈
IsTerminating プロパティを使用して、サービス操作の呼び出しで通信セッションを終了することを示します。
クライアント アプリケーションでは、 の IsTerminating 値が に true
設定され、応答が到着した後にチャネルを閉じるよう WCF に指示します。
サービスでは、タイマーが設定され、その期間内にクライアントがチャネルを閉じない場合はチャネルを中止します。
セッションでこのプロパティを使用する方法の詳細については、「セッションの 使用」を参照してください。
注意
呼び出し元が OperationContext.OperationCompleted 操作の OperationContractAttribute.IsTerminating イベントをリッスンしている場合、応答の受信時にブロックすることができます。 これを処理する適切な方法として、OperationCompleted が発生し、その直後に該当のイベント ハンドラーから制御が返されたときに、別のスレッドで処理するようにスケジュールを設定します。
適用対象
.NET