C# 如何计算ASP.NET MVC中的图像视图

C# 如何计算ASP.NET MVC中的图像视图,c#,asp.net,asp.net-mvc,iis,owin,C#,Asp.net,Asp.net Mvc,Iis,Owin,我想截取所有图像文件的请求,但我没有办法 一种方法是在MVC控制器中创建一个操作并从中返回所有图像文件 public HttpResponseMessage Get(Guid id) { var path = HttpContext.Current.Server.MapPath(string.Format("/OriginalImages/{0}.jpg", id)); byte[] fileData = File.Exists(path) ? File

我想截取所有图像文件的请求,但我没有办法

一种方法是在MVC控制器中创建一个操作并从中返回所有图像文件

 public HttpResponseMessage Get(Guid id)
    {
        var path = HttpContext.Current.Server.MapPath(string.Format("/OriginalImages/{0}.jpg", id));
        byte[] fileData = File.Exists(path) ? File.ReadAllBytes(path) : new byte[0];
        MemoryStream ms = new MemoryStream(fileData);
        HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
        result.Content = new ByteArrayContent(ms.ToArray());
        result.Content.Headers.ContentType = new MediaTypeHeaderValue("image/png");
        return  result;
    }
但这似乎不是一个好主意,因为我注意到映像访问请求在15-20毫秒内完成,而通过path直接访问映像需要5-6毫秒

我尝试使用Owin中间件,但它不会在图像文件请求上执行


我怎样才能做到这一点?我想以此增加图像文件的查看次数。

您必须配置IIS(通过IIS管理界面或应用程序web.conifg),以便它通过ASP.NET映射所有图像服务请求。然后编写一个处理程序,当请求映像时,该处理程序将执行任何您想要的操作。

您必须配置IIS(通过IIS管理界面或应用程序web.conifg),以便它通过ASP.NET映射所有映像请求。然后编写一个处理程序,在请求图像时,该处理程序将执行您想要的任何操作。

您可以编辑此程序,询问“如何计算图像视图”,并查看人们的建议,而不是询问拦截请求的问题,这可能不是您的答案,而只是顺便提及您真正想做的事情。询问您想知道的内容,而不是您认为答案应该是什么。使用本文中的基本控制器文件方法:。您可以编辑此内容以询问“如何计算图像视图”,并查看人们的建议,而不是询问拦截请求,这可能不是您的答案,顺便提一下你真正想做的事。询问您想知道什么,而不是您认为答案应该是什么。请使用本文中的基本控制器文件方法:。