Я разрабатываю службу WCF с обратным вызовом, используя привязку именованного канала. И когда я вызываю сервис из клиента, на стороне сервера трассировка показывает ошибку «Произошла ошибка чтения из канала: нераспознанная ошибка 109», и в итоге соединение канала было прервано. Но я понятия не имею, что вызвало проблему. Трассировка не дает больше информации, кроме трассировки стека:
System.ServiceModel.Channels.PipeConnection.OnAsyncReadComplete(Boolean haveResult, Int32 error, Int32 numBytes)
System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped)
System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
и еще одна ошибка 109 с трассировкой стека
System.ServiceModel.Channels.PipeConnection.OnAsyncReadComplete(Boolean haveResult, Int32 error, Int32 numBytes)
Я подозревал, что это как-то связано с возвращаемым значением операции на основе потока операций трассировки. Но даже если я объявлю возвращаемый тип операции как void, я все равно получу эту ошибку. Другое дело, хотя я использую обратный вызов, но он не вызывает обратный вызов внутри операции.
Буду признателен за любую помощь, или если вы поможете мне отладить прерванное соединение, я уверен, что есть какой-то способ получить более подробную информацию. Например, как перехватить исключение, упомянутое выше (блок try try внутри операции сервера ничего не получает, как и вызывающая функция на стороне клиента).