.ashx文件

news/2024/2/29 3:31:15

ashx是什么文件,如何创建

 

.ashx 文件用于写web handler的。其实就是带HTML和C#的混合文件。当然你完全可以用.aspx 的文件后缀。使用.ashx 可以让你专注于编程而不用管相关的WEB技术。.ashx必须包含IsReusable.



建立方法如下: 
首先打开一个Web项目,然后在任意目录下使用VS2003解决方案资源管理器的“添加”-->“添加新项”,在对话框中选择“文本文件”,然后在文件名处输入“TextBuilder.ashx”。 

然后在同目录下,使用解决方案资源管理器,使用“添加”-->“添加类”,在类文件名处输入“TextBuilder.ashx.cs”。可以看出,它的文件命名规律与.aspx文件相同。 

然后在.cs文件处输入以下代码(名称空间略):

using System.Web 
public sealed class TextBuilder : IHttpHandler 

    
public void ProcessRequest(HttpContext context) 
    { 
         context.Response.ClearContent(); 
         context.Response.ContentType = "text/plain"; 
         context.Response.Write("Hello World"); 
         context.Response.End(); 
     } 

    
public bool IsReusable 
    { 
        
get { return true; } 
     } 
}


然后在“TextBuilder.ashx”文件的第一行处输入上面这个类的调用代码:

<%@ WebHandler language="C#" Class="MyNamespace.TextBuilder" codebehind="TextBuilder.ashx.cs" %>

上面的代码需要注意的是:必须在Class项中输入类的完整名称,即包括名称空间及类名称。 

最后保存并编译项目。 

使用IE测试,输入这个.ashx的地址即可。 

大家可以看出Response类有个OutputStream方法,可以向客户端输出二进制数据流,所以在我的项目中,使用这个方法,在一个.ashx中使用DundasChart控件就可以生成非常好的统计图,用它发送二进制数据,方便快捷,而且不需在web.config内输入任何配置代码。

.ashx文件有个缺点,他处理控件的回发事件非常麻烦,比如说如果用它来生成DataGrid的列表也不是不行,但是处理数据的回发,需要一些.aspx页的功能,只有自己手动处理这些功能。所以,一般使用.ashx,用来输出一些不需要回发处理的项目即可。

利用“一般处理程序”。如果你实用的是vs2005你在添加新项中可以见到“一般处理程序”,它的后缀名为.ashx。它是什么?其实它和.aspx很类似。先问问.aspx是如何工作的?也许你知道,.aspx能处理来自外部传入的请求,然后它还能处理这个请求并生成一个html作为结果返回。这是典型的处理外部请求的方式。.aspx就是专门为处理“典型”的请求而出现的。那么如果我们现在需要一种又能处理外部请求又需要我们自定义的处理这个请求那又要怎么做呢?(也就是不实用“典型”的方式来处理)。.ashx就能帮你做到这一点。


请在你自己建立的WEB站点文件夹中随便放一个图片。我的想法是这样,我先将一个图片读取成一个二进制的数据然后在将这个二进制的数据转变成一个图片。这其中需要你建立两个文件。一个.ASPX文件和现在我们要实用的.ASHX文件。

文件ImageHandler.ashx

<%@ WebHandler Language="C#" Class="ImageHandler" %>

using System;
using System.Web;
/// <summary>
/// 这就一个没有任何实现的一般处理程序。
/// </summary>
public class ImageHandler : IHttpHandler {

public void ProcessRequest (HttpContext context)
{
//
获取虚拟目录的物理路径。 
string path = context.Server.MapPath("");
//获取图片文件的二进制数据。
byte[] datas = System.IO.File.ReadAllBytes(path + """U1513.jpg");
//将二进制数据写入到输出流中。
context.Response.OutputStream.Write(datas, 0, datas.Length);
}

public bool IsReusable {
get {
return false;
}
}

}


default.aspx
文件
注意上面的代码:<asp:Image ID="Image1" runat="server" ImageUrl="~/ImageHandler.ashx"/></div> 中ImageUrl指向的是ImageHandler.ashx文件。

 

 注:VS2008中添加“一般处理程序”即可,很简单。

 


http://www.ppmy.cn/news/829332.html

相关文章

ashx文件

ashx是什么文件?   .ashx 文件用于写web handler的。.ashx文件与.aspx文件类似&#xff0c;可以通过它来调用HttpHandler类&#xff0c;它免去了普通.aspx页面的控件解析以及页面处理的过程。其实就是带HTML和C#的混合文件。 .ashx文件适合产生供浏览器处理的、不需要回发处…

ashx文件的使用

最近在研究DTcms,ashx用于生成登陆的code,所以研究了一下。 ashx是什么文件 .ashx 文件用于写web handler的。.ashx文件与.aspx文件类似&#xff0c;可以通过它来调用HttpHandler类&#xff0c;它免去了普通.aspx页面的控件解析以及页面处理的过程。其实就是带HTML和C#的混合文…

ashx 文件怎么用

本文导读&#xff1a;ashx是什么文件,如何创建 .ashx 文件用于写web handler的。其实就是带HTML和C#的混合文件。.ashx文件类似于.aspx文件&#xff0c;可以通过它来调用HttpHandler类&#xff0c;从而免去了普通.aspx页面的控件解析以及页面处理的过程。 一、ashx文件的添加 打…

图像处理之图像灰度化

图像灰度化 将彩色图像转化成为灰度图像的过程成为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定&#xff0c;而每个分量有255中值可取&#xff0c;这样一个像素点可以有1600多万 (255255255)的颜色的变化范用。而灰度图像是R、G、B三个分量相同的一种特…

【C++ 重要知识点总结】Boost C++ 库 Asio

本章介绍了 Boost C 库 Asio&#xff0c;它是异步输入输出的核心。 名字本身就说明了一切&#xff1a;Asio 意即异步输入/输出。 该库可以让 C 异步地处理数据&#xff0c;且平台独立。 异步数据处理就是指&#xff0c;任务触发后不需要等待它们完成。 相反&#xff0c;Boost.A…

QQ同步登入出现 回调地址非法,请使用已注册的回调地址(21006)!错误解决办法

错误信息&#xff1a;回调地址非法&#xff0c;请使用已注册的回调地址(21006)&#xff01; 解决办法是在&#xff1a; 只需要在connect.qq.com后台将回调地址参数修改为http://www.xxx.com(注你的域名)就可以解决&#xff0c;修改后在1-2小时内将会生效。 <script>docum…

qq邮箱日历同步服务器,科技教程:qq邮箱客户端怎么使用exchange服务同步日历?...

如今越来越多的小伙伴对于qq邮箱客户端怎么使用exchange服务同步日历?这方面的问题开始感兴趣&#xff0c;看似平静的每一天&#xff0c;在每个人身上都在发生着各种各样的故事&#xff0c;因为大家现在都是想要了解到此类的信息&#xff0c;那么既然现在大家都想要知道qq邮箱…

Android iOS Mac QQ邮箱 日历同步

QQ邮箱 先要开启授权码&#xff0c;这就要求你先绑定一个手机&#xff0c;具体设置请看官方教程。 Android & iOS 设置好后&#xff0c;先获得一个授权码&#xff0c;进入QQ邮箱&#xff1a; 设置->账户->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务->生成授…

Python 时间同步程序

Python 时间同步程序 运行结果 两种修改本地时间的方法 (局域网内&#xff0c;利用网关服务器&#xff0c;穿越代理&#xff0c;与互联网时间同步的方法&#xff1a; 前部分用于win7系统&#xff0c;后部分用于winserver2008。 需要 pip3 install ntplib 需要启动Windows Time…

服务器怎么和本地文件同步,本地与服务器文件同步

本地与服务器文件同步 内容精选 换一换 在IntelliJ上选择“项目”,找到“.idea”文件夹,单击右键选择“新建>文件”, 输入文件名“settings.json”生成settings.json文件。如图1所示。复制以下代码至新创建的settings.json文件中,修改以下代码中的服务器名称、目标服务器…

QT线程同步与异步处理

平时我们使用线程的时候一般是继承QThread类&#xff0c;实现它的run()函数&#xff0c;将需要在线程中执行的代码放在run()里进行执行。需要注意的事项&#xff1a;如果是while循环&#xff0c;想要结束线程&#xff0c;调用QThread::quit是没有用&#xff0c;因为这样的线程根…

修复airdisk上微力同步功能拒绝访问的问题

记录一下解决airdisk Q3X NAS服务器的微力同步功能拒绝请求的问题 这个问题也是困扰了我两天&#xff0c;我询问了airdisk的售后&#xff0c;以及微力同步社区都没有任何回应&#xff0c;最后还是添加了微力同步开发者的QQ才解决问题。。。 流程 解决方法&#xff1a; 首先…

DataX以及增量同步

目录 第一部分&#xff1a;DataX一、DataX基本知识二、DataX应用三、DataX安装测试四、DataX性能调优五、DataX源码编译问题整理六、datax增量同步 第二部分&#xff1a;增量同步一、数据库增量同步数据思路二、数据同步工具 Otter1. Canal2. Otter能解决什么问题 三、Otter与D…

微力同步

介绍 微力同步是一款跨平台的文件同步工具&#xff0c;一切都像极了老牌同步工具 Resilio Sync&#xff0c;微力同步支持Windows、macOS、Linux以及群晖、QNAP、WEstern Digital和Android平台&#xff0c;使用key分享文件&#xff0c;有需要的赶快下载吧! 功能介绍 使用 P2P…

1.1.6 LSDB同步

邻接关系 邻接建立过程 讲完了报文之后我们具体来看一下是怎么同步的&#xff0c;我们可以看到下图是我们LSDB的过程&#xff1a; 注意&#xff1a; 我们要注意&#xff0c;在到达同步过程之前我们先要达到2-way的状态&#xff0c;就是我们首先要有邻居状态的建立&#xff0c;才…

位同步

一、几个概念的区分 对于基本概念的认识是非常重要的&#xff0c;比如说&#xff1a;码元、比特、波特、帧&#xff0c;以及由此产生的码元速率、比特率、波特率&#xff0c;还有位同步&#xff08;比特同步&#xff09;、帧同步等等信息。 1、码元和码元速率 一个数字脉冲称…

提交代码到Gitlab自动同步备份到Gitee

一.明确需求&#xff0c;日常工作中使用的代码管理工具是Gitlab&#xff0c;但是我们需要Gitee也要有一份跟Gitlab代码库中的同样的代码并且Gitlab有新的提交就自动同步到Gitee。 二.入坑前准备工作 ①分别注册gitlab账户和gitee账户 ②需要在gitlab添加一个SSH密钥&#xff…

ntpdate同步更新时间

ntpdate同步更新时间 知识预览 1、安装ntpdate2、date命令3、ntpdate命令4、ntp常用服务器5、加入crontab Linux服务器运行久时&#xff0c;系统时间就会存在一定的误差&#xff0c;一般情况下可以使用date命令进行时间设置&#xff0c;但在做数据库集群分片等操作时对多台机…

多传感器时间同步

时间同步 第一次谈及时间同步&#xff0c;可能会有点懵逼。其实这在我们生活中是很常见的&#xff0c;小时候应该都用过那种电子手表&#xff0c;这种电子手表往往隔一段时间就会不准确&#xff0c;需要手动进行校准。这种手动校准的过程就可以认为是时间同步。想想看&#xff…

时间同步原理

时间同步原理 一.同步原理 如上图所示,同步两个不同系统的时间,两个系统的时间偏差为 Δ \Delta Δ ,即: t B − t A Δ t_B-t_A\Delta tB​−tA​Δ 上图对应的公式如下: t B 1 t A 1 Δ τ 1 ; &#xff08; 1 &#xff09; t A 2 t B 2 − Δ τ 2 ; &#xff08;…
最新文章