如何通过 url 或其他方式从 WebApi 项目调用 Handler.ashx?

How to call Handler.ashx from WebApi project via url or something?

我有简单的 OOTB 处理程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace XXX.XXX.WebApi.Controllers
{
    /// <summary>
    /// Summary description for Handler1
    /// </summary>
    public class Handler1 : IHttpHandler
    {

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

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}

我的文件结构是

如何通过url调用这个hello world示例?我浏览了很多教程,但总是有问题...比如 App_Code 文件夹等

我试过(或用过)什么

https://msdn.microsoft.com/en-us/library/ms228090.aspx

https://www.codeproject.com/articles/538589/theplustruthplusaboutplushttphandlersplusandpluswe

还有许多其他事情在我的案例中都没有成功。有什么想法吗?

您必须映射处理程序,但是,它不是 mvc 意义上的控制器,因此我将它放在外部,放置在您的应用程序的特殊文件类型处理程序的位置。

要连接它,您需要通过配置让 ASP.NET 知道处理程序。

<httpHandlers>
    <add verb="*" path="*.myext" type="Handler1"/>
</httpHandlers>

警告 - 通过这样做,您的应用程序将同时利用 MVC 处理管道和传统的 ASP.NET 管道。

您不直接调用您的处理程序。您已指定您有兴趣检查具有特定扩展名 and/or 路径的请求,这通常会被忽略。要测试处理程序,只需将 http 请求发送到端点,该端点将解析为您指定的处理程序要处理的内容。