C# 无法访问自定义httpHandler

C# 无法访问自定义httpHandler,c#,asp.net-mvc-5,httphandler,C#,Asp.net Mvc 5,Httphandler,我正在创建一个定制的HttpHandler,用于下载扩展名为“.apk”的文件,但当我运行代码时,它从未通过我的处理程序。这是我的密码: 自定义处理程序(其主体中的代码仅用于测试-尚未完全实现) 如果我在ProcessRequest()的第一行中放置断点,代码将永远无法到达它。 我错过了什么? 当我尝试url:/Home/Index/Something.apk时,什么都没有发生,它只加载我的默认页面(而不是HttpHandler代码) 另外,我在Web.config中有.apk的mimeType

我正在创建一个定制的HttpHandler,用于下载扩展名为“.apk”的文件,但当我运行代码时,它从未通过我的处理程序。这是我的密码: 自定义处理程序(其主体中的代码仅用于测试-尚未完全实现)

如果我在ProcessRequest()的第一行中放置断点,代码将永远无法到达它。 我错过了什么? 当我尝试url:/Home/Index/Something.apk时,什么都没有发生,它只加载我的默认页面(而不是HttpHandler代码)


另外,我在Web.config中有.apk的mimeType

您跟踪了请求本身了吗?相对/绝对URL可能存在一些问题。您还可以检查IIS中是否已经存在android应用程序包的映射。您还可以尝试在路由配置文件中为这些扩展添加忽略路由。不,我没有跟踪它,我是asp.net mvc和C#的新手,所以您能给我一个跟踪它的工具吗。我对处理程序的了解是,它们应该在路由之前执行。首先,我会检查这是否对您有帮助(IgnoreRoute):为什么会有转义字符(
\*
)?这正常吗?在我的代码中没有转义字符,我之所以把它放在这里是因为我无法在“”中可视化*但有人编辑了这篇文章,对此表示抱歉。如果我写忽略{resource}/.apk,那么它可以与localhost//Something.apk一起工作,但我需要如下URL:localhost//AppName/branch/AppName.apk也可以:localhost//AppName/branch/version/AppName.apk
public class PackageHttpHandler : IHttpHandler
{
    public bool IsReusable
    {
        get { return true; }
    }

    public void ProcessRequest(HttpContext context)
    {
        context.Response.ContentType = "text/plain";

        context.Response.Write("<strong>CustomHandler</strong>");

        context.Response.Flush();
    }
}
add verb="*" path="*.apk" name="PackageHandler" type="MyApp.HttpHandlers.PackageHttpHandler"