次の方法で共有


StreamSocketControl.SerializeConnectionAttempts プロパティ

定義

複数の接続試行が行われているときに、試行が並列または直列に行われるかどうかを示す値。

public:
 property bool SerializeConnectionAttempts { bool get(); void set(bool value); };
bool SerializeConnectionAttempts();

void SerializeConnectionAttempts(bool value);
public bool SerializeConnectionAttempts { get; set; }
var boolean = streamSocketControl.serializeConnectionAttempts;
streamSocketControl.serializeConnectionAttempts = boolean;
Public Property SerializeConnectionAttempts As Boolean

プロパティ値

Boolean

bool

true の場合、この StreamSocket では、最大 1 回の接続試行が一度にアクティブになります。 既定値は false です。

注釈

特定の状況では、Windows ランタイムが複数のメソッドを並列で使用して接続の確立を試みる場合があります。 たとえば、 StreamSocket が接続を試行し、ネットワーク上でプロキシが検出されると、指定された IP アドレスへの直接接続と HTTP CONNECT 要求 (プロキシ経由で接続) の両方が並列で試行されます。 最初に成功するのは、 StreamSocket オブジェクトで使用される接続です。 これはほとんどの場合うまく機能しますが、両方の接続試行が成功した場合に一部のサーバーで問題が発生します。 アプリで StreamSocket を使用して、並列接続メソッドによってサーバーで問題が発生するサーバーに接続している場合は、接続する前に SerializeConnectionAttempts を true に設定する必要があります。 これにより、特定の時点で最大 1 回の TCP 接続試行が継続され、1 つの接続のみが使用されるようになります。

接続を試みるために ConnectAsync を呼び出す前に、コードでこのプロパティを設定する必要があります。 ConnectAsync が呼び出された後にこのプロパティ値を変更すると、例外がスローされます。

接続ロジックをシリアル化すると、接続の確立に時間がかかる場合があることに注意してください。

適用対象