<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.iis.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:cs="http://blogs.iis.net/"><channel><title>Search results matching tag 'HttpWorkerRequest'</title><link>http://forums.iis.net/search/SearchResults.aspx?o=DateDescending&amp;tag=HttpWorkerRequest&amp;orTags=0</link><description>Search results matching tag 'HttpWorkerRequest'</description><dc:language>en-US</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Are child requests supported in Integrated Pipeline Mode?</title><link>http://forums.iis.net/p/1132368/1798665.aspx#1798665</link><pubDate>Wed, 11 Jul 2007 18:28:38 GMT</pubDate><guid isPermaLink="false">50bcf3b4-f6fe-4638-adff-0c150e922e99:1798665</guid><dc:creator>brettle</dc:creator><cs:applicationKey>iis7_-_general--1</cs:applicationKey><description>Hi,
&lt;p&gt;The &lt;a href="http://msdn2.microsoft.com/en-us/library/system.web.httpworkerrequest.aspx"&gt;HttpWorkerRequest documentation&lt;/a&gt; states:&lt;/p&gt;

&lt;blockquote&gt;
  
&lt;p&gt;... your code could create a derived class for the purpose of child-request
execution within a given application in order to pass its instance to &lt;b&gt;ProcessRequest&lt;/b&gt;. In this case, the derived class should keep a reference to the current &lt;b&gt;HttpWorkerRequest&lt;/b&gt; and delegate most of the methods to it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My &lt;a href="http://www.brettle.com/neatupload"&gt;NeatUpload&lt;/a&gt;
component does exactly this and works fine in Classic Pipeline Mode
under IIS7.&amp;nbsp; However, in Integrated Pipeline Mode the child&amp;nbsp; request
seems to silently fail.&amp;nbsp; I&amp;#39;m logging calls to all of the overrideable
.NET 1.1 methods of HttpWorkerRequest and I see the following sequence of calls:&lt;br /&gt;
&lt;/p&gt;

&lt;blockquote&gt;
  
&lt;pre&gt;GetFilePath()&lt;br /&gt;SetEndOfSendNotification()&lt;br /&gt;GetHttpVerbName()&lt;br /&gt;GetQueryStringRawBytes()&lt;br /&gt;GetQueryString()&lt;br /&gt;GetServerName()&lt;br /&gt;GetProtocol()&lt;br /&gt;GetLocalPort()&lt;br /&gt;GetUriPath()&lt;br /&gt;GetRemoteAddress()&lt;br /&gt;EndOfRequest()&lt;/pre&gt;
&lt;/blockquote&gt;&lt;p&gt;

Note that SendStatus() is never called and neither SendResponseFromFile() nor SendResponseFromMemory() is called. That combined with what I read in an &lt;a href="http://forums.iis.net/t/1025191.aspx"&gt;earlier thread&lt;/a&gt; on this forum make me think that child requests are not supported in Integrated Pipeline Mode.&amp;nbsp; Is that true?&lt;/p&gt;&lt;p&gt;NeatUpload uses child requests in 2 different ways.&amp;nbsp; First, to extract uploaded files from the entity body a BeginRequest handler 1) creates a child request that delegates most methods to the original request but overrides methods like ReadEntityBody() to do the file extraction, and 2) passes the child request to HttpRuntime.ProcessRequest() and calls CompleteRequest() on the original request.&amp;nbsp; Second, to make the progress bar work in a web garden/farm environment, the upload status is stored in the session and needs to be updated periodically during the upload.&amp;nbsp; Since we don&amp;#39;t want to lock the session for the entire upload request, child requests are used to update the status in the session.&lt;/p&gt;&lt;p&gt;If child requests are not supported in Integrated Pipeline Mode, does anyone have any recommendations on alternative ways to manipulate the entity body or update the session without locking it for the entire request?&amp;nbsp; The only possibility I&amp;#39;ve found for manipulating the entity body is using IHttpRequest::ReadEntityBody and IHttpRequest:SetEntityBody from a native module.&amp;nbsp; The only possibility I&amp;#39;ve found for updating the session without holding a lock on it involves using methods of ASP.NET 2.0&amp;#39;s SessionStateProviderBase.&amp;nbsp; I haven&amp;#39;t tried either, so if there are better alternatives or I&amp;#39;m on the wrong track, please let me know.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks,&lt;/p&gt;&lt;p&gt;Dean&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;</description></item></channel></rss>