不在asp.net应用程序中运行http处理程序

本文关键字:http 处理 程序 运行 asp net 应用程序 不在 | 更新日期: 2023-09-27 18:28:50

当一些用户访问扩展名为png、jpeg、gif和其他的图像文件时,我想运行我的httphandler。但当我尝试路径时,我得到了eror404。我想是哪个服务器试图在磁盘上找到文件,但我想使用别名来访问我的处理程序中的文件,并使用更新的访问权限来访问真正的物理文件路径
配置文件示例:

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpHandlers>
      <add verb="GET,HEAD" path="*.jpg" type="Startup.Shop.ImageHandler, Startup.Shop" validate="false"/>
    </httpHandlers>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
  <system.webServer>
    <handlers>
      <add name="ImageHandlerfor JPG" path="*.jpg" verb="GET" type="Startup.Shop.ImageHandler, Startup.Shop" resourceType="Unspecified" />
      <add name="ImageHandler for GIF" path="*.gif" verb="GET" type="Startup.Shop.ImageHandler, Startup.Shop" resourceType="Unspecified" />
      <add name="ImageHandler for BMP" path="*.bmp" verb="GET" type="Startup.Shop.ImageHandler, Startup.Shop" resourceType="Unspecified" />
      <add name="ImageHandler for PNG" path="*.png" verb="GET" type="Startup.Shop.ImageHandler, Startup.Shop" resourceType="Unspecified" />
    </handlers>
  </system.webServer>
/configuration>

示例处理程序类:

 public class ImageHandler : IHttpHandler, IRouteHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("Hello World");
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
        public IHttpHandler GetHttpHandler(RequestContext requestContext)
        {
            return this;
        }
    }

更多-iis服务器配置为经典模式

不在asp.net应用程序中运行http处理程序

如果您处于经典模式,那么除非IIS知道应该映射的文件类型,否则asp.net不会被IIS调用。在IIS控制面板中,您应该能够配置ASP.NET处理的文件类型。否则,它将假设文件类型是在文件系统中找不到的物理文件。