3

Windows サービスによってホストされている WCF サービスがあります。ネットワーク内のゼロから多数のクライアントへのパブリッシュ/サブスクライブ関係があります。バインディングは net.TCP です。WCF サービスは、クライアントがコールバック ハンドラーを登録できるように、"Subscribe" メソッドをクライアントに提供します。WCF サービスは、現在サブスクライブしているクライアントのコールバック ハンドラーでメソッドを定期的に呼び出します。

インターフェースは以下に定義されています (省略形で):

    [OperationContract(IsOneWay = false)]
    void ReturnInitialData(
        InitialData initialData,
        CraneState recentState,
        VerticalCraneState recentVerticalCraneState,
        ThresholdState recentThresholdState,
        StationaryStatusFlagsState recentStationaryStatusFlagState,
        LightsState recentLights,
        BarrierRiskState recentBarrierRiskState
        );

サービスが約 42000 バイトのデータで ReturnInitialData() を呼び出すと、正常に動作します。サービスが約 70000 バイトのデータでそれを呼び出すと、次の例外がスローされます。

The socket connection was aborted. This could be caused by an
error processing your message or a receive timeout being
exceeded by the remote host, or an underlying
network resource issue. Local socket timeout was '00:10:00'.

これは netTcpBinding 構成です。

General
CloseTimeout                00:00:20
HostNameComparisonMode      StrongWildcard
ListenBacklog               0
MaxBufferPoolSize           524288
MaxBufferSize               2147483647
MaxConnections              0
MaxReceivedMessageSize      2147483647
OpenTimeout                 00:01:00
PortSharingEnabled          False
ReceiveTimeout              00:10:00
SendTimeout                 00:10:00
TransactionFlow             False
TransactionProtocol         Ole Transactions
TransferMode                Buffered


ReaderQuotas Properties
MaxArrayLength              0
MaxBytesPerRead             0
MaxDepth                    0
MaxNameTableCharCount       0
MaxStringContentLength      0


ReliableSession Properties
Enabled                     False
InactivityTimeout           00:10:00
Ordered                     True

リードやポインタは大歓迎です。

4

2 に答える 2