title: Streaming Databased Images Using HttpHandler
body: <p>For a long time now I have noticed something annoying when working on Web Application projects involving databased images on my local machine. By local I mean that it's a typical environment with VS 2008 and SQL Server 2005 on my workstation. Whenever I use an HttpHandler to display the images on my local, only some of the images render on each page load.</p>
  
  <p>However, when I push the application to a hosted environment, the problem usually disappears. However, I just pushed a new project out to a hosted environment and experienced the same problem as on my local - this time the site and the DB were on the same server in the hosting environment. Has anyone got a take on what's happening here? </p>
  
  <p>Here's the handler:</p>
  
  <pre><code>[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;
          }
      }
  } 
  </code></pre>
  
  <p>I have tried using a DB on a separate server but encountered the same problem. Should I be using a DataReader instead?</p>
  
  <p><strong>UPDATE</strong>
  I should have used a DataReader initially since I am reading binary data.</p>