我在我的项目中添加了一个通用处理程序(ashx),但我无法在web.config中看到它的注册并且它可以工作。怎么来的 ?我的意思是不应该Visual Studio将它添加为web.config中的http处理程序?或者是因为我没有覆盖任何预定义的处理程序,而是我专门调用它。Web.Config中的通用处理程序注册
回答
通常,Asp.net中的通用处理程序是为支持一些小任务而设计的,例如创建一些不需要Asp.net进程的缩略图。所以,你可以把它称为一个简单的asp.net页面,如“www.somesite.com/Thumbnail.ashx?filename=abc.jpg”。
顺便说一下,如果你想映射这个处理程序与一些URL像下面的URL。
- www.somesite.com/Thumbnail/abc.jpg
- www.somesite.com/Thumbnail/dog.jpg
- www.somesite.com/Thumbnail/cat.jpg
您需要使用一些URL路由,如Web表单路由(基于System.Routing)来映射它。所以,你可以使用下面的代码来完成上面的例子。
public static void RegisterRoutes(RouteCollection routes)
{
routes.Map("Thumbnail", "Thumbnail/{filename}").To("~/Thumbnail.ashx");
}
有关Web Form映射的更多信息,请参阅Phil Haack的Using Routing With Web Forms。
但是,如果您需要创建一些Http处理程序,它可以处理您的应用程序的某些指定文件类型,如JavaScript文件处理程序。您必须创建从IHttpHandler继承的类。之后,您必须在web.config文件中注册它,以获取由此处理程序处理的指定文件类型。请看HTTP Handlers and HTTP Modules in ASP.NET Mansoor Ahmed Siddiqui
PS。如果使用通用处理程序在web.config文件中注册,则需要创建2个文件,分别是SomeHandler.ashx和SomeHandler.ashx.cs。创建一些简单的文件处理程序相当复杂。另一方面,您只能创建一个继承自IHttpHandler类的cs文件来完成同样的任务。
处理程序只是您可以浏览到的另一种文件类型。 HTTP模块必须在web.config中注册,但不一定是处理程序。
我相信你可以截取每个HTTP请求思维的HTTP模块代替HTTP处理程序
的HTTP模块的现场,并可以选择做一些操作在HTTP管道或完全拦截呼叫。模块必须在web.config
在另一方面,被注册的HttpHandler的工作几乎完全一样的ASPX页面,除了它是一个比较轻便,不处理你做的所有页面事件不需要诸如图像处理器之类的东西。
感谢您的好答案,但实际上我并没有混淆Httphandler与httpModule我有点知道他们是什么。我问为什么我注册httphandler :)谢谢寿。 – Tarik 2009-10-13 05:32:38
- 1. 在web.config中注册ASP.NET Http处理程序有多种方法?
- 2. 在web.config中注册处理程序时可以使用相对路径
- 3. Chrome中的协议处理程序通过注册表
- 4. 注册SecurityTokenReceived事件处理程序
- 5. Microsoft.AspNet.WebHooks.Receivers。* MVC 5未注册处理程序
- 6. jQuery多处理程序注册问题
- 7. 注册处理程序在ASP.NET 5
- 8. 如何向Observable.FromEventPattern中使用的事件注册/取消注册处理程序?
- 9. 如何在C++中注册线程退出处理程序?
- 10. 禁用html元素(IE8)的注册鼠标处理程序
- 11. Java中的Pentaho PDF生成 - 没有注册根处理程序
- 12. 注册/取消注册事件处理程序的一般方法
- 13. 如何注册子进程的信号处理程序?
- 14. 通过注册表而不是TLB注册应用程序
- 15. 处理器注册 - 应用程序变量关联
- 16. 使用JS和Canvas注册事件处理程序
- 17. 如何在Javascript中注册window.external.notify事件处理程序
- 18. 如何在rails中注册rb作为模板处理程序
- 19. 在Masstransit中注册消费者和处理程序3
- 20. 如何在ASP.NET Core中手动注册Mediatr处理程序?
- 21. 如何在Dart中为HttpServer注册多个处理程序?
- 22. 在neo4j中注册事务事件处理程序
- 23. 我可以将我的应用程序注册为闹钟处理程序吗?
- 24. 自定义web.config节处理程序
- 25. 以编程方式注册Sharepoint 2007事件处理程序
- 26. 非DOM对象的JavaScript事件处理(注册多个处理程序)
- 27. 单处理器,注册表或配置文件的数据库处理程序
- 28. 注册Outlook识别的自定义URL协议处理程序?
- 29. 是否可以注册这样的事件处理程序?
- 30. 针对iOS注册协议处理程序的API
谢谢,现在有道理。 – Tarik 2009-10-12 23:33:23
好解释1 + ..... – 2009-10-13 09:45:48