0

我想运行我的 httphandler,当某些用户可以访问带有 png、jpeg、gif 等扩展名的图像文件时。但是当我尝试路径时出现错误 404。我认为什么服务器尝试在磁盘上查找文件,但我想使用别名来访问我的处理程序中的文件,并使用更新的访问权限来访问真实的物理文件路径。
示例配置文件:

<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 服务器

4

1 回答 1

0

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

于 2013-08-23T13:52:01.307 回答