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

时间:2016-12-15 16:08:58

标签: c# asp.net .net asp.net-web-api ashx

我有简单的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;
            }
        }
    }
}

我的文件结构是

enter image description here

如何通过url调用这个hello world示例?我经历了很多教程,总是出现问题......比如App_Code文件夹等。

我尝试了什么(或与之一起)

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

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

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

1 个答案:

答案 0 :(得分:1)

你必须映射处理程序,但是,它不是mvc意义上的控制器,所以我会把它放到应用程序的特殊文件类型处理程序的位置。

要进行连接,您需要通过配置让ASP.NET了解处理程序。

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

提醒 - 通过这样做,您的应用程序将使用MVC处理管道和传统的ASP.NET管道。

您不能直接致电处理程序。您已指定您有兴趣检查具有特定扩展名和/或路径的请求,这通常会被忽略。要测试处理程序,只需向端点发送一个http请求,该端点将解析为您指定要处理的处理程序。