Tôi đang sử dụng trình xử lý yêu cầu ashx để truy xuất hình ảnh và điểm ngắt của tôi trong tệp ashx không bị ảnh hưởng. Khi tôi sử dụng firebug tôi có thể thấy rằng yêu cầu trả về 404 khiến tôi nghĩ rằng tôi cần định cấu hình một số cài đặt để có thể tìm thấy tệp ashx.asp.net ashx request 404
Tôi đang sử dụng studio hình ảnh 2008 và .net 3.5.
tập tin ASHX
namespace hybrid.content.Handlers
{
public class DB_Images : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
Int32 image_id;
if (context.Request.QueryString["id"] != null)
image_id = Convert.ToInt32(context.Request.QueryString["id"]);
else
throw new ArgumentException("No parameter specified");
context.Response.ContentType = "image/jpeg";
Stream strm = GetImageFromDatabase(image_id);
if (strm != null)
{
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);
}
//context.Response.BinaryWrite(buffer);
}
}
public Stream GetImageFromDatabase(int image_id)
{
SqlConnectionStringBuilder connstr = new SqlConnectionStringBuilder();
//connstr.InitialCatalog = "dummy";
//connstr.UserID = "sa";
//connstr.Password = "password";
//connstr.DataSource = "source";
connstr.InitialCatalog = "smsdb";
connstr.UserID = "user";
connstr.Password = "password";
connstr.DataSource = "10.31.4.79";
SqlConnection conn = new SqlConnection(connstr.ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
// cmd.CommandText = "select image from cis_images where image_id = @p_image_id";
cmd.CommandText = "select image from test_images where image_id = @p_image_id";
cmd.Parameters.AddWithValue("@p_image_id", image_id);
conn.Open();
object img = cmd.ExecuteScalar();
try
{
return new MemoryStream((byte[])img);
}
catch
{
return null;
}
finally
{
conn.Close();
conn.Dispose();
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
sự kiện Trang nhấp chuột
protected void Button1_Click(object sender, EventArgs e)
{
Image1.ImageUrl = "~/DB_Images.ashx?id=" + TextBox1.Text;
}
ashx html
<%@ WebHandler Language="C#" CodeBehind="DB_Images.ashx.cs" Class="hybrid.content.Handlers.DB_Images" %>
Không có bất kỳ html ngoài tham chiếu đó.
Có điều gì tôi thiếu để làm việc này không?
Bạn có thể dán nội dung bạn có trên chế độ xem "html" của trình xử lý không? (nội dung của tập tin ashx) –
IIS có được thiết lập để phục vụ các trình xử lý không? –
@TheSavage IIS được thiết lập để phục vụ các trình xử lý. –