ashx是什么文件,如何创建[转]

简介:
 
ashx是什么文件,如何创建
.ashx 文件用于写web handler的。其实就是带HTML和C#的混合文件。当然你完全可以用.aspx 的文件后缀。使用.ashx 可以让你专注于编程而不用管相关的WEB技术。.ashx必须包含IsReusable. 如下例所示


<% @ webhandler language="C#" class="AverageHandler" %> 

using System; 
using System.Web; 

public class AverageHandler : IHttpHandler 

public bool IsReusable 
{ get { return true; } } 
public void ProcessRequest(HttpContext ctx) 

ctx.Response.Write("hello"); 

}
.ashx比.aspx的好处在与不用多一个html   
注意了VS2005中Web应用程序项目模板里的Generic Handler 项,发现它是一个.ashx文件,实际上它是一个HttpHandler。后来查了一下.Net SDK文档,发现Asp.Net1.1也支持.ashx,但是没有给出详细内容。 

我们都知道,HttpHandler是一个彻底自定义Http请求的方法,它通过web.config来定义Asp.Net运行时来过滤出要自定义的Http请求,发送到定义在web.config的指定类中。 

利用.ashx文件是一个更好的方法,这个文件类似于.aspx文件,可以通过它来调用HttpHandler类,从而免去了普通.aspx页面的控件解析以及页面处理的过程。这个文件特别适合于生成动态图片,生成动态文本等内容。 

建立方法如下: 
首先打开一个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,用来输出一些不需要回发处理的项目即可。 
欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!http://www.cnblogs.com/sunshine-anycall/archive/2009/07/08/1519020.html
相关文章
|
缓存 Java Maven
Maven配置多仓库无效?来看看这篇文章
Maven配置多仓库无效?来看看这篇文章
2147 0
Maven配置多仓库无效?来看看这篇文章
|
5月前
|
JavaScript 前端开发 iOS开发
NVS:一款简洁高效的 Node.js 版本管理工具
本文由前端开发者喵喵侠分享,介绍轻量级Node.js版本管理工具nvs的使用方法。涵盖Windows安装、常用命令(如add、link、use、ls、rm)、全局与局部版本切换技巧,并详细说明macOS下卸载nvs的完整步骤。相比nvm,nvs在Windows上体验更稳定,操作简洁高效,适合多项目开发场景。
662 1
|
消息中间件 运维 监控
企业级短信验证码服务架构设计与最佳实践
随着移动互联网的发展,短信验证码成为用户身份验证的重要手段。本文从企业级应用角度出发,探讨如何构建高可用、高并发和安全可靠的短信验证码服务。通过多通道冗余、故障自动切换和服务降级保障高可用性;利用异步处理与消息队列应对高并发;借助多层防刷、内容审核和数据加密提升安全性。同时,提供了详细的架构设计、核心模块代码示例以及监控运维方案,帮助读者理解并实现一个完整的短信验证码系统。
650 2
|
11月前
|
JSON 自然语言处理 数据挖掘
分词提取免费API使用指南:轻松实现文本关键词提取
免费中文分词关键词提取API,支持舆情分析、内容标签生成及搜索引擎优化,通过智能算法快速拆分文本关键词,适用于多种场景。
463 1
|
9月前
|
人工智能 前端开发 测试技术
Kimi K2 模型更新,带来更强的代码能力、更快的 API
今天,Kimi K2 模型的最新版本 0905 开源发布,进一步提升其在真实编程任务中的表现
1870 0
|
开发框架 前端开发 JavaScript
在Winform开发中,使用Async-Awati异步任务处理代替BackgroundWorker
在Winform开发中,使用Async-Awati异步任务处理代替BackgroundWorker
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
2222 1
|
网络协议 网络架构
OSPF中的Not-So-Stubby Area (NSSA):概念、配置与应用
OSPF中的Not-So-Stubby Area (NSSA):概念、配置与应用
631 3
|
安全 数据安全/隐私保护

热门文章

最新文章