长期以来流录入数据库的图片现在就涉及到我的本地计算机上录入数据库图像的Web应用程序项目时,我已经发现了一些恼人的。就本地而言,我的意思是这是在我的工作站上使用VS 2008和SQL Server 2005的典型环境。每当我使用HttpHandler在本地显示图像时,只有一些图像在每个页面上呈现。使用的HttpHandler
然而,当我推应用程序托管环境中,问题通常会消失。但是,我只是将一个新项目推送到托管环境,并遇到了与本地相同的问题 - 这次该站点和数据库位于托管环境中的同一台服务器上。有没有人知道这里发生了什么?
这里的处理程序:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class FeaturedHandler : IHttpHandler
{
Business biz = new Business();
public void ProcessRequest(HttpContext context)
{
if (context.Request.QueryString["ListingID"] != null)
{
int listingID = Convert.ToInt32(context.Request.QueryString["ListingID"]);
DataSet ds = biz.GetFeaturedImageByID(listingID);
DataRow row = ds.Tables[0].Rows[0];
byte[] featureImage = (byte[])row["Photo"];
context.Response.ContentType = "image/jpeg";
context.Response.OutputStream.Write(featureImage, 0, featureImage.Length);
}
else
throw new ArgumentException("No ListingID parameter specified");
}
public bool IsReusable
{
get
{
return false;
}
}
}
我一直在使用一个单独的服务器上的数据库尝试,但遇到同样的问题。我应该使用DataReader吗?
UPDATE 因为我正在读取二进制数据,所以最初我应该使用DataReader。
可能相关:http://stackoverflow.com/questions/5500950/what-is-the-use-for-ihttphandler-isreusable – 2011-03-31 17:24:08