Sign In
Kanwaljeet Singla's Weblog
Translate This Page
Translate this page
Powered by
Microsoft® Translator
Options
Blog Home
About
Email Blog Author
Share this
RSS for posts
Atom
RSS for comments
Search
Advanced search options...
Search In:
Everything
Blogs
Forums
People
Groups
Places
Pages
Date range:
All Time
Last Year
Last 6 Months
Last 3 Months
Last Month
Last Week
Last Two Days
Tags
AdvancedLogging
Appcmd
Configuration
Custom Errors
FastCGI
IIS 7.5
IIS7
MSDeploy
PHP
Tracing
WinCache
Archive
Archives
October 2009
(1)
September 2009
(2)
April 2009
(3)
March 2009
(1)
February 2009
(1)
January 2009
(2)
December 2008
(2)
June 2008
(3)
February 2008
(2)
December 2007
(2)
July 2007
(2)
June 2007
(1)
May 2007
(2)
April 2007
(1)
February 2007
(2)
December 2006
(2)
November 2006
(2)
August 2006
(3)
June 2006
(3)
Improvements to FastCGI in IIS 7.5
MSDN Blogs
>
Kanwaljeet Singla's Weblog
>
Improvements to FastCGI in IIS 7.5
Improvements to FastCGI in IIS 7.5
Kanwaljeet Singla
22 Jan 2009 1:19 PM
Comments
3
Following improvements have been made to FastCGI module in Win7 (and Win2K8 R2).
1.
Monitor changes to a file
We have added ability to monitor changes to a file for each FastCGI process pool. Module will recycle FastCGI processes for the process pool if a change to the file is detected. Users can specify file path to monitor using
system.webServer/fastCgi/application@monitorChangesTo
property. Value can be absolute path to the file or path relative to the folder containing FastCGI executable. In case of php, if fullPath property is set to “
c:\php\php-cgi.exe
”, monitorChangesTo property can be set to “
php.ini
” or “
c:\php\php.ini
”. If file to monitor is not found, status code 500 is returned on each request. Default value of this property is blank which means no file monitoring.
2.
Real-time tuning
In win2k8, maxInstances property could be configured to a constant value greater than 0. This value dictated maximum number of FastCGI processes which can be launched for each application pool which is also equal to maximum number of requests which can be processed simultaneously as one process handle only one request at a time. Default value of this property was 4. Administrators were required to do some testing with different values to find the optimal number of maxInstances for their server. In win7, if you set maxInstances to 0, FastCGI module automatically adjusts this number up or down every few seconds based on the system load and number of requests waiting in the queue.
3.
Tracing
In win7, STDERR stream can be used to send trace messages to FastCGI module which are logged to IIS FREB trace (if enabled). Trace messages are identified by start markers “IIS_TRACE_INFO:”, “IIS_TRACE_WARNING:”, “IIS_TRACE_ERROR:”. Depending on which start marker is used, information/warning/error trace event is generated. End of a trace statement should be marked by “:IIS_TRACE_END”. You can send as many trace statements as you like for each request. Most application frameworks running as FastCGI provide a way to send text on STDERR stream. In case of php, function
error_log()
can be used. So
error_log(“IIS_TRACE_WARNING: Warning event.:IIS_TRACE_END”);
statement in PHP code will make “Warning event” appear in IIS trace logs. Getting your application traces with traces generated by web server can be a very powerful tool for debugging problems. Note that starting from PHP 5.2.7 you can pass a parameter to the
error_log()
function to specify that the logged message should be always sent to STDERR regardless of
error_log
setting in
php.ini
. To do that use
message_type
parameter set to 4, e.g.
error_log(“IIS_TRACE_WARNING: Warning event.:IIS_TRACE_END”, 4);
4.
STDERR stream
handling
FastCGI module can now be configured to handle text sent on STDERR stream differently. In IIS7 we used to return status code 500 and send data received on STDERR stream as the response. Now the behavior can be modified by setting
system.webServer/fastCgi/application@stderrMode
property. Value of this property can be set to one of following values.
ReturnStderrIn500
- We will set status code 500 and send whatever we receive on STDERR as response. This is the default value and gives same behavior as IIS7.
ReturnGeneric500
- Module will set status code 500 but will return a generic 500. This configuration is useful if you want to enable detailed error logging for server but don’t want to return these errors to users.
IgnoreAndReturn200
- Text on STDERR stream is completely ignored and we will send what we receive on STDOUT as response with status code 200. This property is useful if use debug statements for tracking purposes.
TerminateProcess
– FastCGI process will get terminated and generic 500 error message will be returned.
Trace statements are removed from STDERR stream before they are subjected to stderrMode logic. Post Win7 Beta, we are looking into making FastCGI work with CpuLimit feature and also dropping invalid response headers instead of failing requests with 500.
Hope this helps.
Kanwal
3 Comments
Blog - Comment List MSDN TechNet
Comments
Loading...
Leave a Comment
Name
Comment
Please add 8 and 5 and type the answer here:
Post