2011-07-20 62 views
0

我有一個ASP.NET Web應用程序,我將以集成管道模式部署到Internet信息服務(IIS)。該應用程序包含存儲在Microsoft SQL Server數據庫中的圖像的照片庫。我需要確保應用程序可以從數據庫中檢索圖像而不會阻止其工作進程。我該怎麼辦?請建議......使用集成管道在IIS上部署ASP.Net Web應用程序

using System; 
using System.Web; 
using System.Configuration; 
using System.Data.SqlClient; 

public class Handler : IHttpHandler { 

public void ProcessRequest (HttpContext context) 
{ 
SqlConnection con = new SqlConnection(); 
con.ConnectionString = ConfigurationManager.ConnectionStrings 
         ["ConnectionString"].ConnectionString; 

// Create SQL Command 
SqlCommand cmd = new SqlCommand(); 
cmd.CommandText = "Select ImageName,Image from Images" + 
        " where ID [email protected]"; 
cmd.CommandType = System.Data.CommandType.Text; 
cmd.Connection = con; 

SqlParameter ImageID = new SqlParameter 
        ("@ID", System.Data.SqlDbType.Int); 
ImageID.Value = context.Request.QueryString["ID"]; 
cmd.Parameters.Add(ImageID); 
con.Open(); 
SqlDataReader dReader = cmd.ExecuteReader(); 
dReader.Read(); 
context.Response.BinaryWrite((byte[])dReader["Image"]); 
dReader.Close(); 
con.Close(); 
} 

和設計規範,

<asp:GridView ID="GridView1" runat="server" 
       AutoGenerateColumns="False" DataKeyNames="ID" 
       DataSourceID="SqlDataSource1"> 
<Columns> 
<asp:BoundField DataField="ID" HeaderText="ID" 
       InsertVisible="False" ReadOnly="True" 
           SortExpression="ID" /> 
<asp:BoundField DataField="ImageName" HeaderText="ImageName" 
           SortExpression="ImageName" /> 
<asp:TemplateField HeaderText="Image"> 
<ItemTemplate> 
<asp:Image ID="Image1" runat="server" 
      ImageUrl='<%# "Handler.ashx?ID=" + Eval("ID")%>'/> 
</ItemTemplate> 
</asp:TemplateField> 
</Columns> 
</asp:GridView> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
SelectCommand="SELECT [ID], [ImageName], [Image] 
       FROM [Images]"></asp:SqlDataSource> 

回答

1

你應該先走一步,編寫應用程序,因爲沒有什麼,那將阻礙工作進程。這個過程是多線程的,這意味着每個連接都將被處理而不會干擾其他連接,所以你沒事。

+0

我看到你的編輯,並且那裏還是沒有任何東西阻止你正常運行它。管道模式基本上不相關。這是一個完全正常的asp.net網絡應用程序。 – Jordan