2

This maybe related to platforms other than ColdFusion.

IIS 6 Log reports "time-taken" much longer (30 minutes) than 120 seconds set in Connection Timeout for several requests to ColdFusion page.

I assume that ColdFusion was unresponsive at the moment. I would like IIS to stop the request rather than wait this long.

Is there an IIS setting that would force this?

Kyle Macey
  • 8,074
  • 2
  • 38
  • 78
Ilya Fedotov
  • 173
  • 1
  • 7

2 Answers2

0

Not really because iis is no longer handling the request once it has been passed to cf. You could try playing with application pool timeout and see if you can get that to throw an error.

snake
  • 732
  • 1
  • 6
  • 11
0

This scenario can also be considered as the slow HTTP DoS attack when caused by the client. IIS doesn't provide much protection against it (at least for slow POST body) because Microsoft considers it a protocol bug, not an IIS weakness. Although I think in this case it is your server doing it to itself.

Things to check:

  • You didn't mention whether it is the request that is slow or the server's response. You could try tweaking your MinFileBytesPerSec parameter if it's the response that is slow. By default it will drop the connection if the client is downloading at less than 240 bytes per second.

    Remember, that 120 second IIS timeout is an idle timeout. As long as the client sends or receives a few bytes inside 120 seconds, that timer will keep getting reset.

  • You didn't mention if this long wait is happening on all pages or always in a few specific ones. It is possible that your CF script is making another external connection, e.g. CFQUERY, which is not subject to CF timeouts, but to the timeouts of the server it is connecting to. Using the timeout attribute inside CFQUERY may prevent this.

  • You also didn't mention what your Coldfusion settings are. Maybe the IIS timeout setting is being ignored by the Coldfusion JRUN Connector ISAPI filter, so you should check the settings in Coldfusion Administrator. Especially check if Timeout Requests after has been changed. If its still at the default of 60 seconds, check your code to see if it has been overridden there, e.g. <cfsetting requestTimeOut = "3600">

  • Finally, there is the matter of the peculiar behavior of CF's requestTimeout that you might have to workaround by replacing some cfscript tags with CFML.

Community
  • 1
  • 1
Amit Naidu
  • 2,494
  • 2
  • 24
  • 32