名前付きパイプを使用したコールバックを使用して WCF サービスとクライアントを設計しています。サーバーがクライアントからの要求を処理すると、エラー #109 が発生し、最終的にパイプ接続が中止されました。以下は、サーバー側からのトレース ファイルです。フォントが小さすぎて見えない場合は、簡単に説明します。
赤でマークされた 3 つの例外は、クライアントからサーバーへの要求が行われたときに発生しました。関数は非常に単純で、1 つの文字列変数をサーバーに渡します。このエラーは #109 (3 つの連続する例外、その数字が何かを意味する場合) であり、それ以上の情報は得られません。そして、このアクティビティでは、パイプ接続が最終的に中止されました。また、奇妙なことに、「Receive bytes on connection...」、「Processing message」の後に次のアクティビティが表示されます。これは実際に実行され、サーバー側の処理が渡されたパラメーターで呼び出されたことを意味します。これはデバッガーで確認できます。これは、サーバー側で操作が渡された文字列を取得したためです。また、操作関数内で試してみると
Dim callback = OperationContext.Current.GetCallbackChannel(Of ISSLServiceCallback)()
If DirectCast(callback, ICommunicationObject).State = CommunicationState.Opened Then
DoSomething()
End If
それは実際には If 文に入ります。これは、チャネルがこれまでのところ実際に有効であることを意味していると思います。
助けてくれてありがとう!