# IIS and FastCGI/Configuring

A default fcgiext.ini file:

; -----------
; fcgiext.ini
; -----------
;
; This is the configuration file for the FastCGI handler for IIS 6.0.
; The FastCGI handler will look for this file in the same directory as
; fcgiext.dll.  By default, the FastCGI installer will place this file into
; the %windir%\system32\inetsrv directory.
;
; The configuration for FastCGI is a collection of one or more applications.
; A FastCGI application consists of a pool of processes that each handle HTTP
; requests.  Each process in the pool will handle one request at a time.
; After each request, the process will be returned to the pool to await
; another request.  Each application is required to have its own section in
; the configuration file to specify its behavior.
;
; The main section of the fcgiext.ini file is the [types] section.  This
; section associates file extensions from the URL with FastCGI applications.
;
; The general syntax is a follows:
;
; [types]
; abc=Application 1
; def=Application 2
; def:1701187997=Application 3
; *=Application 4
; *:1701187997=Application 5
;
; The above example consists of 5 mappings mapped as follows:
;
; - The file extension "abc" is associated with the FastCGI application
;   named "Application 1".
;
; - The file extension "def" is associated with the FastCGI application
;   named "Application 2".
;
; - The file extension "def" is associated with the FastCGI application
;   named "Application 3", but only for requests made to the web site
;   with the numeric identifier "1701187997".  Note that site-specific
;   mappings override non-site-specific mappings.
;
; - Requests with a file extension that does not have a specific mapping
;   are associated with the FastCGI application named "Application 4".
;
; - Requests to the web site with the identifier "1701187997" with a file
;   extension that does not have a specific mapping are associated with
;   the FastCGI application named "Application 5".
;
; Note that application names are ASCII and should generally contain only
; alphanumeric characters, and spaces are allowed.  Application names are
; case-insensitive.
;
; Note also that it is allowed for multiple mappings to be associated with
; the same FastCGI application.
;
; The following is a sample application section.  Note that the name of
; the section must correspond to at least one mapping in the [types] section
; in order to be used:
;
; [Application 1]
;
; ExePath=string
; - The ExePath property specifies the executable for the FastCGI process,
;   where 'string' is the full path to the executable.  A non-empty string
;   is required.
;
; Arguments=string
; - The Arguments property specifies any arguments to be passed to the
;   FastCGI executable, where 'string' represents the arguments.  Multiple
;   arguments may be space delimited. If there is a space within the argument
;   then this argument must be placed in quotes. This property is optional.
;
; EnvironmentVars=string
; - The EnvironmentVars property specifies optional environment variables
;   that will be set in the FastCGI executable.  If any of the supplied
;   variable names collide with existing server variables, the ones specified
;   in this property will be used.  The format of the string is a comma
;   delimited list in the form of 'name1:value1,name2:value2'.  If a
;   delimiting character, such as a comma, semicolon or slash is necessary in
;   a value, it can be preceded by a '/' character (For example:
;   'name1:with/,commas,name2:with/;semicolon,name3:with//slash'.  This
;   property is optional.
;
; Protocol=string
; - Specifies the protocol used to communicate with the FastCGI process.
;   The allowed values are 'NamedPipe' and 'Tcp'.  If not specified, the
;   default value is 'NamedPipe'.
;
; MaxInstances=n
; - Specifies the maximum number of processes that are allowed in the
;   application's process pool.  This number directly corresponds to the
;   maximum number of concurrent requests that can be handled by the
;   application.  If not specified, the default value is 10.
;
; QueueLength=n
; - Specifies the maximum number of requests to this application that will
;   be queued before the FastCGI handler starts returning errors to clients
;   indicating that the application is too busy.  If not specified, the default
;   value is 1000.
;
; IdleTimeout=n
; - Specifies the time, in seconds, that a FastCGI process for this application
;   is allowed to remain idle.  If a process remains idle for longer than this
;   period, it will be shut down.  If not specified, the default value is
;   300 seconds.
;
; ActivityTimeout=n
; - Specifies the maximum time, in seconds, that a FastCGI process for this
;   application is allowed to run without communicating with IIS.  In practice,
;   this timeout is used to detect and shut down 'hung' processes.  If not
;   specified, the default value is 30 seconds.
;
; RequestTimeout=n
; - Specifies the maximum allowed time, in seconds, for a request to this
;   application.  If a FastCGI process takes longer than this amount of time
;   on a single request, it will be terminated.  If not specified, the default
;   value is 90 seconds.
;
; InstanceMaxRequests=n
; - Specifies the number of requests a FastCGI process for this application is
;   allowed to handle.  After handling this number of requests, it is shut
;   down so that it can be replaced with a new process.  If not specified, the
;   default value is 1000.
;
; ResponseBufferLimit=n
; - Data from FastCGI processes is buffered before being returned to the client
;   as responses.  This property specifies the amount of response data, in
;   bytes, that will be buffered for requests to this application.  This buffer
;   will be flushed to the client once it is full, or when the response is
;   complete, whichever occurs first.  If not specified, the default value is
;   4194304 (4MB).
;
; FlushNamedPipe=n
; - Specifies whether or not the named pipe between FastCGI processes for this
;   application is flushed before shutting down the application.  Possible
;   values are 0 or 1.  For most applications, 0 is the correct value.  If you
;   see processes hanging after InstanceMaxRequests has been reached, try
;   setting this value to 1.  If not specified, the default value is 0.
;
; UnhealthyOnQueueFull=n
; - If 1, the worker process hosting is flagged to IIS as unhealthy any time
;   that the application's request queue is filled.  IIS checks health whenever
;   it does a ping to the worker process.  If that worker process has been
;   flagged as unhealthy, it (along with everything it is hosting) will be
;   recycled.  If not specified, the default value is 0.
;
; IgnoreExistingFiles=n
; - If 1, this application will ignore any requests where the target file
;   exists on the file system, so that IIS can serve them normally.  This
;   feature is useful in the case where the FastCGI handler is installed as
;   a wildcard script map.  If not specified, the default value is 0.  Note
;   that this feature only applies only to IIS 6.0.
;
; IgnoreExistingDirectories=n
; - If 1, this application will ignore any requests where the target is a
;   directory on the file system, so that IIS can serve them normally.  This
;   feature is useful in the case where the FastCGI handler is installed as
;   a wildcard script map.  If not specified, the default value is 0.  Note
;   that this feature only applies only to IIS 6.0.