2011-11-11 3 views
0

내 이미지가 내 애플리케이션에서 갑자기 작동하지 않습니다. 디자인 타임 동안 그들은 완벽하게 나타납니다. 그러나 모든 이미지는 런타임 중에 존재하지 않습니다. 이미지 폴더에 있습니다. "~ /"를 사용하여 루트 디렉토리로 돌아갑니다. 이것은 일하곤했는데 어떤 이유로 작동을 멈췄습니다. 어떤 아이디어?HttpHandler가 런타임에 이미지를 보내지 않습니다.

<asp:Image ID="imgFirstElected" runat="server" 
      ImageUrl="~/Images/calendar_icon.gif" style="cursor:pointer;" /> 

편집 :

좋아, 난 그냥 발견 그것 때문에 내 ImageHandler이다. 내 web.config에서이 코드를 제거하면 이미지가 다시 나타납니다. 어떻게하면이 문제를 해결할 수 있을지 아십니까?

<httpHandlers> 
    <add verb="*" path="*.bmp" type="CurrentFigures.HttpImageHandler,CurrentFigures"/> 
    <add verb="*" path="*.jpg" type="CurrentFigures.HttpImageHandler,CurrentFigures"/> 
    <add verb="*" path="*.gif" type="CurrentFigures.HttpImageHandler,CurrentFigures"/> 
    <add verb="*" path="*.png" type="CurrentFigures.HttpImageHandler,CurrentFigures"/> 
</httpHandlers> 

편집 : 이미지 처리기 코드

public bool IsReusable 
    { 
     get 
     { 
      return false; 
     } 
    } 

    public void ProcessRequest(HttpContext context) 
    { 
     int imageid = Parser.GetInt(context.Request.QueryString["ImID"]); 
     ProfileImage image = new ProfileImage(Parser.GetInt(imageid)); 

     if (imageid > 0) 
     { 
      context.Response.ContentType = "image/jpeg"; 
      Stream strm = ShowImage(imageid); 
      byte[] buffer = new byte[4096]; 
      int byteSeq = strm.Read(buffer, 0, 4096); 

      while (byteSeq > 0) 
      { 
       context.Response.OutputStream.Write(buffer, 0, byteSeq); 
       byteSeq = strm.Read(buffer, 0, 4096); 
      } 
     } 

     /* 
     string imageid = context.Request.QueryString["ImID"]; 
     ProfileImage image = new ProfileImage(Parser.GetInt(imageid)); 

     context.Response.BinaryWrite(image.ImageData); 
     context.Response.End(); */ 
    } 

    public Stream ShowImage(int imageID) 
    { 
     ProfileImage image = new ProfileImage(Parser.GetInt(imageID)); 

     try 
     { 
      return new MemoryStream(image.ImageData); 
     } 
     catch 
     { 
      return null; 
     } 
    } 
+3

을 종료 한 후 통화 context.Response.Flush();해야합니다. –

답변

1

당신의 while 루프 우리는 클래스 HttpImageHandler` '에 무슨 일이 일어나고 있는지 알 필요가

+0

그게 작동하지 않았다. –

관련 문제