AsfMojo - asp.net MVC / Извлечение кадра из кэша WMV C#

Я использую AsfMojo (в обработчике) в своем приложении MVC для извлечения BMP-файла из WMV-файла, он отлично работает на моем локальном хосте IIS7, однако изображение не отображается, когда я публикую приложение в нашем хостинг-сервисе.

скрипт вида:

 <img id="Image1" alt="image"  src="ImageHandler.ashx?img=CT0001.wmv" height="512" width="512" />

Сценарий обработчика:

       string videoname = System.Web.HttpContext.Current.Server.MapPath("Video/" + sImageFileName);
            if(File.Exists(videoname)) 
                {
                Bitmap bmp = AsfImage.FromFile(videoname).AtOffset(timeOffset);
                bmp.Save(objMemoryStream, ImageFormat.Png);
                byte[] imageContent = new byte[objMemoryStream.Length];
                objMemoryStream.Position = 0;
                objMemoryStream.Read(imageContent, 0, (int)objMemoryStream.Length);
                context.Response.ContentType = "image/jpeg";
                context.Response.BinaryWrite(imageContent);
                context.Response.Cache.SetExpires(DateTime.Now.AddMinutes(5));
                context.Response.Cache.SetMaxAge(TimeSpan.FromMinutes(5));

Вот сообщение об ошибке, когда я пытался отобразить изображение в новом окне, используя Chrome:

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[ArgumentNullException: Value cannot be null.
Parameter name: image]
   System.Drawing.Graphics.DrawImage(Image image, Int32 x, Int32 y, Int32 width, Int32 height) +1133063
   DirectshowTest.ImageHandler.ProcessRequest(HttpContext context) in E:\..\projects\DirectshowTest\DirectshowTest\ImageHandler.ashx.cs:40
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +341
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69

Я подозреваю, что из-за размера файла wmv скрипт-обработчик не ждет, пока он прочитает все кадры в файле в этой строке:

 Bitmap bmp = AsfImage.FromFile(videoname).AtOffset(timeOffset);

Я попытался кешировать ответ в сети без какой-либо удачи. Есть ли способ проверить, полностью ли прочитан файл перед генерацией изображения.

Буду признателен за ваши предложения, заранее спасибо.

0 ответов

Другие вопросы по тегам