代码之家  ›  专栏  ›  技术社区  ›  Vibin Jith

什么是asp.net中的通用处理程序及其用途?

  •  12
  • Vibin Jith  · 技术社区  · 15 年前

    我是asp.net新手。我想知道asp.net中的通用处理程序 以及它的用途和用途?

    你能帮我吗?

    5 回复  |  直到 7 年前
        1
  •  6
  •   Arsen Mkrtchyan    15 年前

    泛型处理程序是实现system.web.ihttphandler接口的.net组件。实现ihttphandler接口的任何类都可以作为传入http请求的目标。页也是泛型处理程序。一般来说,泛型处理程序具有ashx的扩展。

    你可以找到例子 here

        2
  •  3
  •   The Scrum Meister    15 年前

    如果希望避免常规ASP.NET页的开销,则使用处理程序 实际例子包括图像处理或处理ajax请求。

    看见 http://msdn.microsoft.com/en-us/library/aa479332.aspx

        3
  •  2
  •   sm.abdullah    12 年前

    一些asp.net文件是动态生成的。它们是用C代码或磁盘资源生成的。这些文件不需要Web表单。相反,ashx通用处理程序是理想的选择。它可以动态地从查询字符串返回图像、编写XML或任何其他数据。

        4
  •  1
  •   RAJESH KUMAR    12 年前

    ashx文件只不过是一个aspx页面,它们相当于用c sharp或visual basic.net编写的自定义处理程序,因为它们包含完全实现ihttphandler的类。它们很方便,就像aspx文件很方便一样。你只需浏览它们,它们就会自动编译。

    何时使用webforms(aspx)

    简单的HTML页面
    ASP.NET自定义控件
    简单的二元页面

    何时使用处理程序(ASHX)

    二进制文件
    动态图像视图
    性能关键型网页
    XML文件
    最小网页

        5
  •  0
  •   Beingnin    8 年前

    ashx泛型处理程序是一个返回动态内容的概念。它用于返回ajax调用、来自查询字符串的图像、编写xml或任何其他数据。 我用它从查询字符串返回mp4文件。请查找以下代码。

    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Web;
    namespace ESPB.CRM.Web.UI.VideoUploading
    {
    
    public class FileCS : IHttpHandler
    {
    
        public void ProcessRequest(HttpContext context)
        {
            int id = int.Parse(context.Request.QueryString["id"]);
            byte[] bytes;
            string contentType;
            string strConnString = ConfigurationManager.ConnectionStrings["dbconnection"].ConnectionString;
            string name;
            using (SqlConnection con = new SqlConnection(strConnString))
            {
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.CommandText = "select Name, Data, ContentType from VideoUpload where Id=@Id";
                    cmd.Parameters.AddWithValue("@Id", id);
                    cmd.Connection = con;
                    con.Open();
                    SqlDataReader sdr = cmd.ExecuteReader();
                    sdr.Read();
                    bytes = (byte[])sdr["Data"];
                    contentType = sdr["ContentType"].ToString();
                    name = sdr["Name"].ToString();
                    con.Close();
                }
            }
            context.Response.Clear();
            context.Response.Buffer = true;
            context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + name);
            context.Response.ContentType = contentType;
            context.Response.BinaryWrite(bytes);
            context.Response.End();
        }
    
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
     }
    }
    

    在这里我创造了 文件格式 文件。 在这里我继承了ihttphandler接口。并编写了processrequest(httpcontext context)函数,该函数将在调用文件时运行default。和context.request.querystring[]将获取参数。我经过这里 身份证件 作为参数。 ISRESUABLE() 功能可用于良好的性能。

    推荐文章