I have an .exe and webapi projects. When I am calling the webapi from the .exe, the connection force fully closed around 5 mins. But I have set the timeout for HttpClient is 3600 seconds. If we set the timeout below 5 minutes then .exe waits till the time and will get timeout. but if we give more than 5 mins then .exe is not waiting till the time we added. Can any has any suggestion on this? in fact we tried with HTTPWebrequest instead HttpClient but facing the same problem.
Thanks in advance
Related
We have spent several weeks trying to fix an issue that occurs in the customer's production environment and does not occur in our test environment.
After several analyses, we have found that this error occurs only when one condition is met: processing times greater than 3600 seconds in the API.
The situation is the following:
SAP is connected to a server with Windows Server 2016 and IIS 10.0 where we have an API that is responsible for interacting with a DB use by an external system.
The process that we execute sends data from SAP to the API and this, with the data it receives from SAP and the data it obtains from the DB of the external system, performs a processing and a subsequent update in the DB.
This process finishes without problems when the processing time in the API is less than 3600 seconds.
On the other hand, when the processing time is greater than 3600 seconds, the API generates the response correctly, and the server tries to return the response to SAP, but it is not possible.
Below I show an example of a server log entry when it tries to return a response after more than 3600 seconds of API processing. As you can see, a 995 error occurs: (I have censored some parts)
Any idea where the error could come from?
We have compared IIS configurations in Production and Test. We have also reviewed the parameters of the SAP system in Production and Test and we have not found anything either.
I remain at your disposal to provide any type of additional information that may be useful for solving the problem.
UPDATE 1 - 02/09/2022
After enabling FRT (Failed Request Tracing) on IIS for 200 response codes, looking at the event log of the request that is causing the error, we have seen this event at the end:
Any information about what could be causing this error? ErrorCode="The I/O operation has been aborted because of either a thread exit or an application request. (0x800703e3)"
UPDATE 2 - 02/09/2022
Comparing configurations from customer's environment and our test environment:
There is a Firewall between SAP Server and IIS Server with the default idle timeout configured for TCP (3600 seconds). This is not happening in Test Environment because there is no Firewall.
Establishing a Firewall policy specifying a custom idle timeout for this service (7200 seconds) the problem will be solved.
sc-win32 status 995, the I/O operation has been aborted because of
either a thread exit or an application request.
Please check the setting of minBytesPerSecond configuration parameter in IIS. The default "minBytesPerSecond" is 240.
Specifies the minimum throughput rate, in bytes, that HTTP.sys
enforces when it sends a response to the client. The minBytesPerSecond
attribute prevents malicious or malfunctioning software clients from
using resources by holding a connection open with minimal data. If the
throughput rate is lower than the minBytesPerSecond setting, the
connection is terminated.
When I launch the Matlab tool in Windows machine, the tool launches but it is in "Initializing" phase for 4-5 minutes. The tool will not respond to any user commands.
The issue could be due to usage of remote license.
The usage of remote license or modifying anything in remote server is not possible right now.
After 4-5 minutes of initialization the Matlab tool works fine and I am ok with this behavior.
But the real problem is while launching Matlab tool using engine.c APIs such as OpenSingleUseFunction() or OpenEngineFunction(), the tool is launching and then goes to idle state.
Since Matlab is in "Initializing" phase for 4-5 minutes, the engine terminates the Matlab session after 2 minutes timeout and returns a MatlabEngine nullptr.
The 2 minutes timeout is not given by user to the engine APIs.
So is there any way to change this timeout value in engine APIs?
i 'm working with asp.net 3.5 and i'm just upset with session handling of asp.net. here it's automatically log out from session period.
here is my web config session time out:
<sessionState mode="InProc" cookieless="false" timeout="20"/>
i just want to increase this time out for max as.
Is that possible for increase timeout="..." or buy default it's managed from iis machine.
Its better that you mention the time out in web.config file and it take timeout in minute not in sec.
I have a critical windows service that I need for my web application.
Unfortunately, the windows service does not start properly, but remains in a status of "Starting" for about 7 minutes and 38 seconds, and then fails.
My web application works fine when the service is in the "Starting" mode.
I have a windows scheduled task that runs every minute to restart the service if necessary.
net start "my service"
Therefore there is a gap of about 22 seconds from when the service fails until it starts up again. In additional it takes an additional 30 seconds or so for my application (which is dependent on this service) to start working.
I have intentionally not named the errant service. I did open a separate question https://stackoverflow.com/questions/8470975/oracle-oc4j-service-keeps-stopping whose aim was to actually solve the problem.
In this question, I am not trying to solve the problem, but rather find a workaround to try and keep this service in a status of "Starting" the whole time.
What is infuriating, is that until I restarted the server today, my workaround of restarting the service every 3 minutes actually worked, with no application downtime whatsoever.
Does anybody have any suggestions? I did try changing the registry key of ServicesPipeTimeout to 86400000 (24 hours!) in a bid to keep the service in the status of "Starting" for longer.
I have found a possible solution to my problem that I am very uneasy about...
I downloaded WinDbg from http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8279
I opened WinDbg and did Attach to Process, and selected my service.
As long as WinDbg is open, it seems to "hold" the process and prevent it from stopping.
How long it will continue to do so, remains to be seen, but it has held for over half an hour now (whereas before the service stopped after 8 minutes)
If you have the timeout set to 24 hours and the service does not start or stay in 'starting' mode , then it must be either crashing or closing itself down.
If you want to try to restarting your service immediately it crashes, then, on the properties of your service, select the 'Recovery' tab. You should be able to set the service to restart on first, second and subsequent failures and set the service to restart after 0 minutes,
Note, this will not work if windows thinks that the service is closing down properly.
It should go without saying that this is a last resort only if you can't get whoever wrote the service to fix the problems.
Try specifying 'Restart the Service' for all three sections on the Recovery tab, but that will only work if the service is ending abnormally.
Our company faced a similar problem and we developed Service Protector, a commercial application that can babysit a service and keep it running 24/7. It may work in your situation too.
I run a Powershell script on a computer that has no Internet connection. But it takes about 30 seconds to start it. How do I solve it?
I have run ngen.
There is a known issue with certificate revocation list checks and .NET (which PowerShell is built on). Check out this post about the .NET issue.
Sounds like it might be trying to do a DNS lookup, and waits for it to time-out. I presume it doesn't take ~30 seconds to start on a machine with internet connection? You could try setting a bogus DNS resolver on the working machine, and see if it takes ~30 seconds there too.