I'm working with a simple handler derived from AsyncUpload handler, whose entire code is below. In this code, the attempt to read the temp file created by the call to base.Process() as an image fails intermittently. When this fails, the file exists, the file stream can be opened, but the FileStream.Length is 0. Is there any way to work around this? I would expect the temp file to be accessible after the call to base.Process(). If it helps, this appears to only happen after I have already uploaded a file within the last few minutes.
public class MyAsyncImageUpload : AsyncUploadHandler{ protected override IAsyncUploadResult Process(UploadedFile file, HttpContext context, IAsyncUploadConfiguration configuration, string tempFileName) { var result =base.Process(file, context, configuration, tempFileName); int imageWidth = 0; int imageHeight = 0; var imageExists = File.Exists(context.Server.MapPath("~/App_Data/RadUploadTemp" + "/" + tempFileName)); using (var fs = new FileStream(context.Server.MapPath("~/App_Data/RadUploadTemp" + "/" + tempFileName), FileMode.Open, FileAccess.Read)) { var imageByteSize = fs.Length; using (var image = Image.FromStream(fs)) { imageWidth = image.Size.Width; imageHeight = image.Size.Height; } } return result; }}