.ashx是什么文件件,如何创建

ashx文件如何发布
发布在iis默认网站的一个虚拟目录下(就一个ashx文件),发布不成功,显示页面不存在,环境,已经安装了3.5了
09-10-14 &匿名提问
p你的IIS 有问题? 这个很复杂的? 请问 你的电脑 IIS 和访问权限设置了吗/ppIIS 里面的有个 插件? 这会想不起来了!·全部要运行 不要禁止~!/p
请登录后再发表评论!.ashx&文件用于写web handler的。.ashx文件与.aspx文件类似,可以通过它来调用HttpHandler类,它免去了普通.aspx页面的控件解析以及页面处理的过程。其实就是带HTML和C#的混合文件。
.ashx文件适合产生供处理的、不需要处理的数据格式,例如用于生成、等内容。
当然你完全可以用.aspx 的文件后缀。使用.ashx&可以让你专注于而不用管相关的WEB技术。.ashx必须包含IsReusable. 如下例所示
&% @ webhandler language="C#" class="AverageHandler" %&
using System.W
public class AverageHandler : IHttpHandler
public bool IsReusable
{ get { } }
public void ProcessRequest(HttpContext ctx)
ctx.Response.Write("hello");
.ashx比.aspx的好处在于不多用一个html
---------------------------------------------------------------------------------------------------------------------------
在ASP.NET中有一种这样格式的文件ashx文件,作什么用的呢?如果你想创建一个ASP.NET文件,它不是aspx文件,它能动态的返回一个图片、XML文件或其他非HTML文件。那就使用ashx文件了。下面介绍下使用方法:1. 使用ASHX handlers& 首先,我们要回顾要使用ASHX文件的目标,我们要做的是在一个地址中用ASHX文件并动态的返回内容。我们将用到querystring,最后的地址格式为(例子):& 开始:通过这几个步骤你可以添加一个新的ashx文件:打开你的ASP.NET web site;右击项目选择&Add New Item...&;将显示一个&Add New Item&的对话框,选择&Generic Handler&。此时,你就会得到一个新的ashx文件。2.自动生成代码& 我们需要注意的是在ashx文件中自动生成的代码。它定义了IHttpHandler接口的两部分。非常重要的一部分是ProcessRequest(),它将决定这个ashx文件是被请求还是被显示。你不能修改这个继承的接口或删除它的方法。3.映射handler映射一个older URL或一个路径到你的新ashx文件通常是可取的。为了向后兼容和优化搜索引擎,你获取希望这个handler能接管一个old URL。如何来实现呢?用urlMappings;&system.web&&&& &urlMappings enabled="true"&&&&&&&& &add url="~/Default.aspx" mappedUrl="~/Handler.ashx"/&&&& &/urlMappings&URL mappings:上面的web.config配置将自动连接一个URL到另一个URL。现在,当Default.aspx被请求时,你的ashx文件将接管。这个意思就是说,你能映射Default.aspx到你的handler。4.添加一个图片在这里,我们谈论到了你用ashx文件能做什么。找一个你喜欢的图片。把它添加到你的网站项目中。例如,我选择了一个图片&Flower1.png&。下面,我们将在ashx文件中用到这个图片。5.修改ashx文件你的ashx文件中有两部分,在这里,我们必须修改ProcessRequest()方法。我们能改变这个文件的ContentType和Response内容。按照下面的方法修改你的ashx文件。~~~ ASHX code-behind file (C#) ~~~using Susing System.Wpublic class Handler : IHttpHandler {public void ProcessRequest (HttpContext context) {// Comment out these lines first:// context.Response.ContentType = "text/plain";// context.Response.Write("Hello World");context.Response.ContentType = "image/png";context.Response.WriteFile("~/Flower1.png");}public bool IsReusable {get {}}}--------------------------------------------handler.ashx文件的作用详解(转) 14:43ASP.NET2.0 Person Web Site:将图片以二进制的从数据库读取
在ASP.NET Person Web Site Starter Kits中,图片的是以二进制的形式存放在数据库里,微软提供的读取该图片的方式是通过handler.ashx来实现的.
首先你所看到的对图片的引用都是类似如下
&img src="Handler.ashx?AlbumID=&%# Eval("AlbumID") %&
的形式,也就是你所看到的每一个图片都由Handler.ashx动态生成,所以在你保存你所看到的"图片"时,它的命名都是Handler.ashx.
使用handler.ashx而不是handler.aspx来引用图片并不是一定的,换句话说,你可以将该文件改为handler.aspx并没有本质的区别,不过根据微软的文档,使用*.ashx作为扩展名的文档比*.aspx的文档性能高,因为它减少了控件树的生成.
----------
这是handler.ashx代码:
&%@ WebHandler Language="C#" class="MyHandle" %&
using System.W
using System.D
using System.Drawing.I
using System.IO;
using System.Web.C
using System.D
public class MyHandle : IHttpHandler {
public void ProcessRequest (HttpContext context) {
//从数据库中取
MemoryStream ms = JSZ.SQLServerDAL.TestDAL.GetImage(1);
DataTable dt = JSZ.SQLServerDAL.TestDAL.GetTable(1);
Byte[] image = (Byte[])dt.Rows[0]["Photo"];
MemoryStream ms = new MemoryStream(image, 0, image.Length);
if (ms != null)
//取得图像MemoryStream大小
int bufferSize = (int)ms.L
//建立 buffer
byte[] buffer = new byte[bufferSize];
//调用MemoryStream.Read,自MemoryStream 读取至buffer,并返回count
int countSize = ms.Read(buffer, 0, bufferSize);
//返回图像buffer
context.Response.OutputStream.Write(buffer, 0, countSize);
public bool IsReusable {
}&------------------------
阅读(...) 评论()ashx误删后,未能创建类型描述今天,因为临时有事儿,需要去一趟其他城市,项目比较赶。所以只能在车上继续敲代码,倒霉的触摸板让我误删一个ashx一般处理程序。好死不死的这个文件的代码还很长。我的做法是【垃圾桶】&【还原】&VS中【包括在项目中】。以为搞定了然后就一直报出 未能创建类型。。。。。。&/&应用程序中的服务器错误。分析器错误说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。分析器错误消息: 未能创建类型&Shop.Web.admin.SiteController&。源错误:行 1:
&%@ WebHandler Language="C#" CodeBehind="SiteController.ashx.cs" Class="Shop.Web.admin.SiteController" %&源文件: /admin/SiteController.ashx 行: 1版本信息: Microsoft .NET Framework 版本:4.0.30319; .net 版本:4.0.坎坷经历在网上找了好多帖子,终是不得要领。貌似都不符合。后来跑到MSDN的开发者社区。我看到了这一幕。可以说看到这一幕我的心里是崩溃的。解决方案后来,痛定思痛。我是这样想的。【未能创建类型】一定是因为我这个类型,已经在程序集中出现了。我要做的就是清空已经编译出来的结果。后俩我就找到网站的本地文件夹,【obj】&【Debug】下删除了所有文件。然后重新编译,F5启动调试。OK~~~~
优质网站模板我直接创建了一个ashx页面,然后直接在浏览器打开,为什么会这样【c#吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:115,197贴子:
我直接创建了一个ashx页面,然后直接在浏览器打开,为什么会这样收藏
注册即可领取万元福利!!!免费注册成为租号玩会员!
ashx是要调用的吧~如果想直接运行就能显示用asmx的~
你这应该还有其它页面吧,项目中默认页是哪个?
你用一般处理程序干嘛我们
你看报的错啊 site超出有效范围 你的ashx的代码里 你看看是否有个site的参数 传进去呀
登录百度帐号推荐应用其他回答(4)
习惯一个表对应一个...关于一个表的逻辑全写进去,根参数决定执行哪个功能,就是哪个函数,然后返回相应的数据。
这个要看你的了。
园豆:40785
园豆:40785
园豆:40785
你可以将某个功能模块的ajax相关操作放到一个ashx文件中,这样便于管理。 ajax请求该资源文件时候传入方法名,园子里有人贴过相关代码,如下
public void ProcessRequest(HttpContext context)
context.Response.ContentType = "text/plain";
context.Response.Buffer = true;
context.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
context.Response.AddHeader("pragma", "no-cache");
context.Response.AddHeader("cache-control", "");
context.Response.CacheControl = "no-cache";
if (HttpContext.Current.Request["cmd"] != null)
string cmd = HttpContext.Current.Request["cmd"];
var method = this.GetType().GetMethod(cmd);
if (method != null)
method.Invoke(this, new object[] { context });
catch (Exception ex)
public void Add(HttpContext context)
//相关业务
public bool IsReusable
return false;
我有一点不太明白,就是ashx里面的我在aspx的后台页面写了也可以调啊,效果和ashx是一样的,当用网站类型的项目时ashx的代码提示功能还不太好用。不用ashx,直接用aspx,这样哪个页面的功能就直接在那个页面的后台调函数,对于这个页面来说比较直观,程序比较好找。缺点是如果其他页面需要了也要从这个页面调,就不直观了
园豆:44886
这篇贴子让我明白了不少道理啊
&&&您需要以后才能回答,未注册用户请先。

我要回帖

更多关于 创建ashx文件 的文章

 

随机推荐