おやすみ・朝・夕など^_^
asp:Image (Web フォームを使用) に画像を表示しようとしているときに問題が発生し、db に byte[] として保存されています。
public class ShowImageHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
//creating object, working with db
var core = new CoreHolder();
var picture = core.PictureRepository.Read(Convert.ToInt32(context.Request.QueryString["id"]))
context.Response.Clear();
context.Response.ContentType = picture.PictureMimeType;
//trying to write byte[]
context.Response.BinaryWrite(picture.PictureData);
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
...そして、私の .aspx ページのそのような文字列:
<asp:Image ID="Image1" runat="server" ImageUrl="~/ShowImageHandler.ashx?id=<%#:Item.ID %>" />
<asp:Image ID="Image1" runat="server" ImageUrl="~/ShowImageHandler.ashx?id=1>" />
問題は次のとおりです。プログラムは id で ProcessRequest を入力し、2 番目の asp-image 文字列の場合、データで pic を見つけますが、BinaryWrite を試みる前に、context.Response に例外があることがわかります。 OutputStream: 長さ、位置 - System.NotSupportedException、読み取り/書き込みタイムアウト - System.InvalidOperationExeption。最初の文字列 (ListView ItemTemplate で使用されます) の場合、OutputStream の問題は残ります + クエリ文字列から ID を取得しようとするとすべてクラッシュします。
助けてください)