我明白,http处理程序处理请求,但这只是理论,因为我不明白它。许多第三方控件需要在web.config中添加一个http处理程序。有时我们需要使用实现IHttpHandler接口的ProcessRequest方法来创建我们自己的类,但我很难理解Http处理程序适合的位置以及它们的角色是什么?为什么我们需要Http处理程序?
3
A
回答
4
HTTP处理程序是ASP.NET的重要组成部分 - 它们是什么处理请求和生成响应。在webforms中,它是典型的(对于页面(aspx,或者可能是ashx)来解释请求,但这是本身一种处理程序类型(只在主web.config文件中默认映射)。
在添加处理程序的配置文件的情况下,这通常是因为应用程序是为网址动态生成内容不神奇映射到现有的文件,或添加一些逻辑为做文件存在但超出了常规的asp.net。
如果您正在使用ASP.NET MVC,你往往需要这少得多(如果有的话),因为它是请求规范不直接映射到源代码树的ASPX/ASHX。
回想ASP.NET webforms,我使用处理程序的主要时间是在执行诸如二进制下载,文件导出等操作时 - 我不希望它通过webforms aspx管道运行。
0
就我个人而言,我使用它们来处理我所有的AJAX请求。因为我通常会输出XML/JSON,所以我使用一个处理程序,因此我不必担心实现System.Web.UI.Page会带来的所有开销。
它们还允许您拦截HTTP管道,这有时可能会有用。 我认为这一切都取决于你想要达到的目标。
肖恩
+0
HttpHandlers不会拦截管道,因此您可以使用HttpModules。 – 2011-01-05 11:34:25
相关问题
- 1. sigaction - 为什么我们不需要重置处理程序?
- 2. 为什么sensorManager.registerListener需要处理程序?
- 3. 为什么我们需要两次在tomcat logging.properties中编写处理程序?
- 4. 为什么我们需要瞬态故障处理存储?
- 5. 我们为什么需要,使用猫鼬有什么好处
- 6. 我需要什么样的Http代理?
- 7. 为什么我们需要一个数据库驱动程序?
- 8. 为什么waitpid在信号处理程序中需要循环?
- 9. 为什么我们需要libnet_do_checksum? HTTP校验不起作用
- 10. DavLockDB:我们需要什么?
- 11. 当我们有内核时,为什么我们需要驱动程序?
- 12. 为什么我们需要simple_one_for_one?
- 13. 为什么我们需要TensorFlow tf.Graph?
- 14. 为什么我们需要使用prompt.start()?
- 15. 为什么我们需要scalaz.stream迭代?
- 16. 为什么我们需要WCF
- 17. 为什么我们需要Anaconda 2.7?
- 18. 为什么我们需要编写log.isDebugEnabled?
- 19. 为什么我们需要ng-click?
- 20. 为什么我们需要Control.Lens.Reified?
- 21. 我们为什么需要纤维
- 22. 为什么我们需要org.junit.ComparisonFailure?
- 23. 为什么我们需要addRequestHeader方法?
- 24. 为什么我们需要时代?
- 25. 为什么我们需要ContinueWith方法?
- 26. 为什么我们需要Java NIO Selector?
- 27. 为什么我们需要使用ExitWindowsEx
- 28. 为什么我们需要包装类
- 29. 为什么我们需要在JavaScript
- 30. 为什么我们需要设置SONAR_RUNNER_OPTS?
每个请求都需要由某段代码处理,无论是.aspx,.ashx,.asmx还是其他。这是通过HttpHandlers完成的,asp.net附带了一堆预构建处理程序,您可以自由添加更多选择。 – 2011-01-05 11:36:15