Requests to the WCF service are resend before timeout

Asked 2 years ago, Updated 2 years ago, 73 views

We have created a WCF service application and configured HTTPS to connect using a "reliableSession".
We then create a client program in WPF and create a service reference to the above WCF services for communication.Basically, I can communicate with them, but if the server takes a long time to respond, it seems that they are resending the same request without waiting for the timeout period (set to 1 minute).
I checked with Fiddler4 and found that the request was thrown to the server and then the same request was thrown again when there was no response and the timeout period was not reached.Also, after a while of the same situation, requests are thrown again, and one minute after the first request, those requests time out almost simultaneously.
The client program itself does not have a code that repeats the same request, especially during a timeout.The interval between retransmissions varies from about 3 seconds to more than 20 seconds.
If you invoke a method that opens the response time for the server by passing arguments, this does not occur when the response time is short, and this occurs when the response time is long.

Is it possible to avoid this phenomenon?If each retransmission is being processed for WCF services, it will increase the load on the server, so I would like to avoid it.

When I checked the log output in the processing of the WCF service (in the svc.cs method), it seemed that the processing of the WCF service was performed only once even if a retransmission occurred.If there is evidence that the same process does not occur on the server side many times, we do not need to force this to happen, but we cannot, so we would like to avoid it if we can.

c# .net wpf wcf

2022-09-30 14:03

1 Answers

It's a Proxy job, isn't it?
https://msdn.microsoft.com/ja-jp/library/aa480191.aspx

When using HTTP, the responder uses a simple trick to cause the requestor to detect an unacknowledged response.Always send confirmation notifications for request messages with a response.As a result, if the response is lost, the requester will not be able to receive a confirmation notification and will resend the same request.Even if the original request has actually arrived at the responder and has already been processed.The responder checks the sequence number of the message and, when the request is found to be retransmitted, instead of reprocessing the message, the message
Returns the cached response from the cache.This is the response that was generated in response to the first request received.


2022-09-30 14:03

If you have any answers or tips


© 2024 OneMinuteCode. All rights reserved.