내 이미지가 내 애플리케이션에서 갑자기 작동하지 않습니다. 디자인 타임 동안 그들은 완벽하게 나타납니다. 그러나 모든 이미지는 런타임 중에 존재하지 않습니다. 이미지 폴더에 있습니다. "~ /"를 사용하여 루트 디렉토리로 돌아갑니다. 이것은 일하곤했는데 어떤 이유로 작동을 멈췄습니다. 어떤 아이디어?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;
}
}
을 종료 한 후 통화
context.Response.Flush();
해야합니다. –