2010-06-30 2 views
-1

У меня есть приложение ASP.NET MVC, в котором я использую HTTP-файл обработчика ashx для получения изображения на странице. Это изображение загружается пользователем путем сканирования документа.Иногда Изображение не отображается только для одного пользователя

Теперь моя проблема заключается в том, что каждый пользователь отображает его, кроме одного, Пользователь сообщает, что он не может видеть изображение, даже если он был загружен успешно, когда я проверил журналы, показанные на этом сервере, и получил изображение. Исключение не было зарегистрировано на сервере при конвертировании изображения тоже :( Еще одна вещь, которая часто случается, 70% раз пользователь не может видеть изображение на странице. 30% времени ему удалось увидеть изображение ... Странный вопрос Пожалуйста, советы, что может быть проблема?

Ниже мой код

public class GetImage : IHttpHandler, System.Web.SessionState.IRequiresSessionState 
{ 

    public GetImage() 
    { 

    } 

    public void ProcessRequest(HttpContext context) 
    { 
     if (context != null) 
     { 
      if (!string.IsNullOrEmpty(context.Request.Params["side"])) 
      { 
       bool isFront = false; 
       if (context.Request.Params["side"].Equals("Front")) 
       { 
        isFront = true; 
       } 
       else 
       { 
        isFront = false; 
       } 


       ICache Cache = CacheManager.SessionCache; 
       DepositState depState = (DepositState)Cache[Constants.DepositSession]; 

       if (depState != null) 
       { 
        byte[] imageByteArray = null; 
        System.IO.MemoryStream imageMemoryStream = null; 
        try 
        { 

         if (isFront) 
         { 
          imageByteArray = System.Convert.FromBase64String(depState.FrontJpegBase64); 

         } 
         else 
         { 
          imageByteArray = System.Convert.FromBase64String(depState.BackJpegBase64); 
         } 

         imageMemoryStream = new System.IO.MemoryStream(imageByteArray); 

         using (System.Drawing.Image img = System.Drawing.Image.FromStream(imageMemoryStream)) 
         { 
          img.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); 
         } 
        } 
        catch(Exception ex) 
        { 
         Log.Error(Constants.DefaultErrorCode, "Exception occured while converting image to Base 64 in GetImage.ashx.cs" + ex); 

        } 

        imageMemoryStream.Close(); 
        context.Response.Flush(); 
       } 
       else 
       { 
        Log.Error(Constants.DefaultErrorCode, " Deposit State object is nullin GetImage.ashx "); 

       } 



      } 
     } 
     else 
     { 
      Log.Error(Constants.DefaultErrorCode, "Context is null in the Process Request "); 
     } 


    } 

    public bool IsReusable 
    { 
     get 
     { 
      return false; 
     } 
    } 
} 
+0

Мы не можем помочь, не увидев ваш код. – jfar

+0

Не зная других конкретных проблем, таких как браузер и конфигурация пользователей, а также ссылку на изображение. Однако, большая часть этого, вероятно, не нужна. Этот пользователь видит другие изображения? Если вы дадите им прямую ссылку на изображение, что произойдет? и т. д. – NotMe

+0

@jfar и Chris, я обновил сообщение, как предлагалось – batwadi

ответ

2

Я не вижу, где вы устанавливаете context.Response.ContentType. Я не проверял это, но мне интересно, может ли отсутствующий заголовок вызвать непредсказуемое поведение браузера.