asp.net – 消息处理程序和Http模块?
如果我想在管道的最初阶段添加一些逻辑或全局行为,我应该在消息处理程序中执行它. (例如:身份验证) 但是Http模块管道怎么样?它适合这整个故事? 查看web api生命周期的这个编号阶段: http://i.stack.imgur.com/jkQe8.jpg 但是看一下Http模块的一般事件(包含更多但是……) 题 : – 这两个系统如何结合在一起?我的意思是如果有1张包含web api和http模块的图片,那么这些数字是多少? (我在图像中添加了数字以便于参考) – 我总是听说如果我想在管道中更早地做事我应该使用消息处理程序,但是例如HttpModule的BeginRequest呢?我知道在这个阶段有些对象是空的但是,httpsodule的后期阶段确实会对HttpContetxt的对象进行充气 – 然而,webapi的人说:使用MessageHandlers ….(它是否与selfhoster环境有关)? 解决方法
要将下图合并到最上面的图中,想象一下上图中的IHttpHandler框对应于下图中的ASPX,以便将下图放在顶部图像的左下角.因此,8和9是IIS ASP.NET管道的一部分. IIS管道运行模块等,并在处理程序处理请求时终止.使用Web API,该处理程序碰巧是HttpControllerHandler,这就是Web API管道启动的地方.如果查看HttpControllerHandler,请求和响应是特定于其左侧的ASP.NET,右侧是HttpRequestMesssage,它是特定于Web API的.
对于第二个问题,您在Web API管道中最早可以做的是消息处理程序. HttpModule将更早,但不是Web API的一部分,而是托管.权衡是,如果你有一个HttpModule,你只能在IIS中使用它,而消息处理程序可以在任何主机上运行,??因为它是特定于Web API和特定于主机的.我在最近的SO回复中一直提到我的MSDN文章,但后来碰巧这篇文章与被问到的问题有关.所以,我没有其他去,但再次链接它.在这里你go.我对那篇文章中的不同选项进行了比较. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – asp.net mvc – 缓存
- asp.net – Web服务互操作性 – wsdl复杂类型扩展
- asp.net-mvc – 如何填充/验证您的ViewModels?
- asp.net-mvc – 在操作过滤器上使用缓存数据,以避免再次执行
- asp.net-mvc – ASP.NET MVC自定义授权
- asp.net-mvc – 使用Session进行Asp.net MVC3长轮询
- 什么是ASP.NET的最佳/推荐的CAPTCHA组件
- asp.net-mvc – ASP.NET MVC – 控制器测试的模拟成员资格
- asp.net – 自定义日期colmn telerik网格的过滤器选项
- asp.net – 使文本框不可编辑
- asp.net-mvc – 如何在MVC3中的局部视图中渲染节
- asp.net core 2.0 spa角谷歌地图
- asp.net-mvc – 有没有办法为MVC控制器中的每个动
- asp.net – 在FormsAuthenticationTicket上的Ver
- asp.net服务器负载均衡设置 – 它如何影响会话
- asp.net – AutoMapper问题
- asp.net-mvc – ApplicationDbContext – 它在项
- asp.net核心 – Asp.Net核心从url获取RouteData值
- asp.net-mvc – MVC – 更改模型的视图中的值[封
- [ASP.NET MVC]为HtmlHelper添加一个RadioButtonL