WCFの信頼できるセッションの信頼性についていくつか質問があります。
WCFは、再試行中にメッセージを再シリアル化しますか?
2. 1が正しい場合、メッセージパラメータが破棄された後に発生しますか?
3. 2が正しい場合、メッセージが確実に送信されたことを識別する方法はありますか?
私はまだリフレクターを介してそれを理解することができませんでした。
UPD 1:サーバーの戻り値にもっと興味があります。彼らはどうなりますか?
UPD 2:メッセージパラメータ(正確には-サーバー応答)はいつ破棄されますか?適切なackが受け取られたときにそれは起こりますか?パラメータを破棄するとは、次のようになります。
at MyNamespace.MyReply.Dispose()
at System.ServiceModel.Dispatcher.MessageRpc.DisposeParametersCore()
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessageCleanup(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc& rpc)
at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
at System.ServiceModel.Dispatcher.ChannelHandler.DispatchAndReleasePump(RequestContext request, Boolean cleanThread, OperationContext currentOperationContext)
at System.ServiceModel.Dispatcher.ChannelHandler.HandleRequest(RequestContext request, OperationContext currentOperationContext)
at System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult result)
at System.ServiceModel.Diagnostics.Utility.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.ServiceModel.AsyncResult.Complete(Boolean completedSynchronously)
at System.ServiceModel.Diagnostics.Utility.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.ServiceModel.AsyncResult.Complete(Boolean completedSynchronously)
at System.ServiceModel.Channels.InputQueue`1.AsyncQueueReader.Set(Item item)
at System.ServiceModel.Channels.InputQueue`1.Dispatch()
at System.ServiceModel.Channels.InputQueueChannel`1.Dispatch()
at System.ServiceModel.Channels.ReliableReplySessionChannel.ProcessSequencedMessage(RequestContext context, String action, WsrmSequencedMessageInfo info)
...stack continues
サーバーの応答を破棄するためにそれを使用する必要があります(このソリューションに到達した理由について、別のSOFスレッドがあります)。
UPD 3:私が解決しようとしている問題は、サーバーの応答が最初に破棄され、次にアプリケーションがそれをシリアル化しようとしているように見えることです。同じオブジェクトを他の場所で再利用しないことを99%確信しています。スタックトレースはかなり醜く、ここに投稿するのは大きいです。