我有一个MVC / Web API,NET4.5应用程序。我创建了自己的自定义处理程序,如下所示:
public class MyMessageHandler : DelegatingHandler
{
protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
var requestDate = request.Headers.Date;
// do something with the date ...
var response = await base.SendAsync(request, cancellationToken);
var responseDate = response.Headers.Date;
// do something with the date ...
return response;
}
}
这适用于API请求(http://server.com/api/resource) 我还配置了web.config以通过托管模块运行所有请求:
<modules runAllManagedModulesForAllRequests="true">
如果要求&#34; html&#34;或&#34; js&#34;文件进来,它不通过我的MyMessageHandler。我想要它。
此外,不确定这是否有帮助,但对静态文件的请求要通过global.asax中的Application_BeginRequest和Application_EndRequest。我可以把我的代码放在那里,但我希望它在MyMessageHandler中。
感谢