C# HttpMessageHandler和HttpHandler之间的差异

C# HttpMessageHandler和HttpHandler之间的差异,c#,asp.net-mvc,C#,Asp.net Mvc,HttpHandler是在ASP.NET中拦截和修改http请求处理的标准方法 HttpMessageHandler是DelegatingHandler的底层类型,DelegatingHandler是在ASP.NET MVC和ASP.NET WebAPI中拦截和修改http请求处理的标准方法 但是您仍然可以在ASP.NET MVC和WebAPI中使用HttpHandler 那么这两者之间有什么区别呢?假设管道包含其中一个,与HttpMessageHandler.SendAsync相比,HttpH

HttpHandler是在ASP.NET中拦截和修改http请求处理的标准方法

HttpMessageHandler是DelegatingHandler的底层类型,DelegatingHandler是在ASP.NET MVC和ASP.NET WebAPI中拦截和修改http请求处理的标准方法

但是您仍然可以在ASP.NET MVC和WebAPI中使用HttpHandler


那么这两者之间有什么区别呢?假设管道包含其中一个,与HttpMessageHandler.SendAsync相比,HttpHandler.ProcessRequest何时在管道中触发(即,哪个首先触发)?

这只是两件不同的事情。WebAPI引入了另一种截获http消息的方法。如果你愿意,你可以同时使用它们

至于顺序: 它看起来像:

如果您对APIController/AuthorizeAttributes和DelegatingHandler的更多细节感兴趣,可以阅读我的帖子:

你试过了吗?我试过了,但到目前为止,我的实验还没有充分说明问题。