註冊ImageHandler我寫它是用來從數據庫中讀取圖像,並顯示在我的網頁下面的處理程序類:如何在web.config中
<%@ WebHandler Language="C#" Class="Handler" %>
using System;
using System.Configuration;
using System.Data.SqlClient;
using System.Web;
public class Handler : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["IranQRDBConnectionString"].ConnectionString);
public void ProcessRequest(HttpContext context)
{
try
{
string TableName = context.Session["TableToQuery"].ToString();
string ID = context.Session["ID"].ToString();
SqlCommand comm = new SqlCommand("SELECT * FROM " + TableName + " WHERE ID=" + ID, conn);
conn.Open();
SqlDataReader dr = comm.ExecuteReader();
dr.Read();
context.Response.ContentType = "image/jpeg";
context.Response.BinaryWrite((byte[])dr["Image"]);
conn.Close();
}
catch
{
SqlCommand comm = new SqlCommand("SELECT * FROM DefaultImage WHERE ID=1", conn);
conn.Open();
SqlDataReader dr = comm.ExecuteReader();
dr.Read();
context.Response.ContentType = "image/jpeg";
context.Response.BinaryWrite((byte[])dr["Image"]);
conn.Close();
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
該類工作正常在我的地方!我已經上傳了我的網站,當我查詢我的數據庫時,所有數據都會返回到我的網頁,除非圖像未顯示在圖像控件中。我搜索了網頁,發現我應該在web.config
文件中註冊我的處理程序,並且主機上的IIS版本是7,並且它正在集成模式下運行!所以我知道我應該在web.config
的<System.webserver><Handlers>
部分註冊該處理程序。
有關更多詳細信息,我將處理程序類添加到我的項目根目錄中,而不是在App_Code
目錄中!我已經上傳網站作爲預編譯的網站,我在我的根目錄下有預編譯的Handler.ashx
,我的App_Code
中有App_Web_handler.ashx.cdcab7d2.dll
文件。
我還補充說:?
<add name="ImageHandler" verb="*" path="*.jpg" type="Handler" />
在我web.config
文件,但它仍然無法正常工作:(
可以在任何一個幫助,請我找到正確的註冊
謝謝,我會試試,但是你沒有看到我的代碼有什麼問題嗎? – Karamafrooz 2012-08-06 11:44:37
你可以做一些優化,如果它在本地工作,它也應該在生產中工作。 – Anuraj 2012-08-06 11:47:21
我的意思是在 你沒有看到任何錯誤嗎?並且不應該將* .jpg映射到ashx? –
Karamafrooz
2012-08-06 11:49:14