/// <summary> /// Запускает асинхронный вызов обработчика НТТР. /// </summary> /// <returns> /// Объект <see cref="T:System.IAsyncResult"/>, содержащий сведения о состоянии процесса. /// </returns> /// <param name="context">Объект <see cref="T:System.Web.HttpContext"/>, предоставляющий ссылки на внутренние серверные объекты (например, Request, Response, Session и Server), которые используются для обслуживания HTTP-запросов. </param><param name="cb">Метод <see cref="T:System.AsyncCallback"/>, который вызывается после завершения асинхронного вызова метода.Если значение параметра <paramref name="cb"/> равно null, делегат не вызывается.</param><param name="extraData">Любые дополнительные данные, необходимые для обработки запроса. </param> public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData) { context.Response.Cache.SetCacheability(HttpCacheability.NoCache); //context.Response.ContentType = "text/plain"; //context.Response.Write("<p>Begin IsThreadPoolThread is " + Thread.CurrentThread.IsThreadPoolThread + "</p>\r\n"); AsyncFile uploader = null; MembershipUser mu = Membership.GetUser(); if (mu != null) { uploader = new AsyncFile(context, cb, extraData, (Guid)mu.ProviderUserKey); uploader.StartAsyncWork(); } else { context.Response.Write("You are not logged!"); } return(uploader); }