httpHandlers 怎么用?

diffmaker 2009-04-10 12:46:17
我在配置文件中写了
<httpHandlers>
<add verb="*" path="*.gif,*.jpg" type="WaterMarkHandler" />
</httpHandlers>
并在App_Code文件夹中建立了一个类,WaterMarkHandler.cs,代码如下

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;

public class WaterMarkHandler : IHttpHandler
{

public WaterMarkHandler()
{
}

public bool IsReusable
{
get
{
return false;
}
}

public void ProcessRequest(HttpContext content)
{
content.Response.Write("WATER MARK");
}
}


感觉没有起作用,哪里有问题呢?
...全文
1592 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
一国之军 2010-03-30
  • 打赏
  • 举报
回复
学习........
hansuzhi 2010-02-25
  • 打赏
  • 举报
回复
学习一下 啊大大大大的
q591487834 2009-09-12
  • 打赏
  • 举报
回复
不明白,他们说什么
diffmaker 2009-04-10
  • 打赏
  • 举报
回复
谢谢大家了,我机器上装的是Vista,怎么配置呢?将应用程序池从集成改为经典后,我看ISAPI-DLL的状态是已禁用
CeShenBeiWang 2009-04-10
  • 打赏
  • 举报
回复
public void ProcessRequest(HttpContext content)
{

HttpRequest request = context.Request;
HttpResponse response = context.Response;
HttpApplicationState application = context.Application;
//加上这几句试试
content.Response.Write("WATER MARK");
}


周公 2009-04-10
  • 打赏
  • 举报
回复
首先要在Web.config中配置,然后需要在IIS中配置。
sabty 2009-04-10
  • 打赏
  • 举报
回复
在Internet服务管理器中把文件扩展如:(.gif)映射到ASP.NET ISAPI扩展DLL(aspnet_isapi.dll)上, 具体操作如下
运行IIS服务管理器,右键点击默认Web站点,选择属性,移动到Home目录选项页,并点击配置按钮。应用程序配置对话框弹出来了。点击添加按钮并在可执行字段输入aspnet_isapi.dll文件路径,在扩展字段输入.gif
ps:如果你的操作系统是XP SP2的话,在输入aspnet_isapi.dll路径时需要手工输入,不能用复制粘贴的形式,否则保存按钮变灰。浏览时去掉check file exit选项。
zzxap 2009-04-10
  • 打赏
  • 举报
回复
[code=C#]
ASP.NET都使用HTTP请求实现了大量的自己的功能。ASP.NET使用处理程序来处理.aspx,.asmx,.soap和其他一些ASP.NET文件。
实现HTTP处理程序包含以下步骤:
1.编写一个实现IHttpHandler接口的类。
2. 在web.config或machine.config文件中注册这个处理程序。
3.在Internet服务管理器中把文件扩展如:(.kim)映射到ASP.NET ISAPI扩展DLL(aspnet_isapi.dll)上。
第一步
构建类库:
public class HandlerTest:IHttpHandler
{
public HandlerTest()
{

}
public void ProcessRequest(System.Web.HttpContext context)
{
   System.Web.HttpResponse obj = context.Response;
obj.Write("<html><body><h1>this is a httphandler test!");
obj.Write("</body></html>");
}

  public bool IsReusable
  {
   get
{
    return true;
    }
  }

}
第二步
<httpHandlers>
<add verb="*" path="*.kim" type="MyHandler.NewHandler,MyHandler"/>
</httpHandlers>
第三步
运行IIS服务管理器,右键点击默认Web站点,选择属性,移动到Home目录选项页,并点击配置按钮。应用程序配置对话框弹出来了。点击添加按钮并在可执行字段输入aspnet_isapi.dll文件路径,在扩展字段输入.kim
ps:如果你的操作系统是XP SP2的话,在输入aspnet_isapi.dll路径时需要手工输入,不能用复制粘贴的形式,否则保存按钮变灰。浏览时去掉check file exit选项。
[/CODE]
周公 2009-04-10
  • 打赏
  • 举报
回复
IHttpHandler 类可通过配置文件的 httpHandlers 配置节与某一文件扩展名或特定的 URL 关联。ASP.NET 结构在接收到相应请求后将实例化并调用处理程序。也可在 .ashx 文件中定义该处理程序,接收到对 .ashx 文件的相应请求后,将执行该处理程序。
麻子Mozart 2009-04-10
  • 打赏
  • 举报
回复
帮顶
周药师 2009-04-10
  • 打赏
  • 举报
回复
幫頂!

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧