Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

INFO: Do Not Send ServerXMLHTTP or WinHTTP Requests to the Same Server


Summary

Using ServerXMLHTTP or WinHTTP objects to make recursive Hypertext Transfer Protocol (HTTP) requests to the same Internet Information Server (IIS) server is not recommended. More specifically, the calling Active Server Page (ASP) should not send requests to an ASP in the same virtual directory or to another virtual directory in the same pool or process. This can result in poor performance due to thread starvation.

If the ServerXMLHTTP or WinHTTP component must send a request to another ASP on the same server, the target ASP must be located in a different virtual directory and set to run in high isolation. Avoid using ServerXMLHTTP or WinHTTP to send a request to an ASP that is located in the same virtual directory.

↑ Back to the top


More Information

A finite number of worker threads (in the Inetinfo.exe or Dllhost.exe process) is available to execute ASP pages. If all of the ASP worker threads send HTTP requests back to the same Inetinfo.exe or Dllhost.exe process on the server from which the requests are sent, the Inetinfo.exe or Dllhost.exe process may deadlock or stop responding (hang), because the pool of worker threads to process the incoming requests will be exhausted. This is by design.

If a single recursive request causes IIS to deadlock, the typical cause is that ASP script debugging is enabled. When debugging is enabled, only one ASP worker thread is available to process the incoming requests for ASP pages. The workaround is to either disable debugging or separate all of the ASP pages into isolated virtual directories and processes.

↑ Back to the top


References

For additional information, click the article numbers below to view the articles in the Microsoft Knowledge Base:

216580 Blocking/Serialization When Using InProc Component (DLL) from ASP
290761 Frequently Asked Questions about ServerXMLHTTP

↑ Back to the top


Keywords: kbdsupport, kbinfo, kb

↑ Back to the top

Article Info
Article ID : 316451
Revision : 1
Created on : 1/7/2017
Published on : 6/22/2014
Exists online : False
Views : 773