[英]What's the difference between making a handler w/ ashx/axd and using something I made up myself in ASP.NET?
这可能很简单但是我真的很困惑。 当我实现IHttpHandler时,我创建了一个处理程序,然后在web.config中注册它:
IIS6 Portion:
<httpHandlers>
<add verb="*" path="*.randomextension" type="MyProgramNameSpace.MyHandler" />
</httpHandlers>
IIS7 Portion:
<handlers>
<add name="mine" verb="*" path="*. randomextension" type ="MyProgramNameSpace.MyHandler" />
</handlers>
它看起来工作得很好,并且可以使用不同的处理程序和选项。 它让我通过直接访问管道来跳过Page类等等。 但是,我经常会遇到文档,其中说我需要使用关于ashx或axd的东西。
这是关于什么的? 这与处理程序创建有什么关系?
这可能很容易,但出于某种原因,我在使用这个ashx或axd处理程序时完全感到困惑。
.asxh处理程序只是一个预先存在/预定义的通用处理程序映射。 与.aspx处理程序不同,您不限于从Page派生,也不会获得完整的ASP.NET页面处理程序事件管道。 通常,您使用.ashx文件来处理作为输入或作为输出非标准内容返回的非页面请求。
与.ashx处理程序和自定义IHttpHandler的不同之处并不多。 为.ashx文件预定义了很多配置,但是,您必须绑定到该扩展名。 使用完全自定义的IHttpHandler,您可以完全自由地完成自由,但需要从头开始配置它。
确实没有区别。 .ashx文件就像你正在做的那样实现IHttpHandler。 只有.ashx是一个预先注册的处理程序,所以你不需要自己将它添加到web.config它已经为你完成了。
如果您决定按文件类型使用扩展名,则处理程序是合适的。
另一方面,如果您尝试返回数据而没有特定的扩展名,则ashx / ahd扩展名也一样好。
例如,如果您有一个存储在数据库中的图像集合,则可以注册一个.JPG处理程序,该处理程序将从数据库而不是硬盘驱动器中提取图像。 您还可以创建可以返回任何图像类型的ASHX。
注册扩展可以使网址对最终用户看起来更“正常”,而ashx看起来更通用(甚至令人讨厌)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.