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