2016-12-15 155 views
0

我有簡單的開箱即用的處理器如何通過網址或其他方式從WebApi項目調用Handler.ashx?

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

和許多其他的事情,而不成功在我的情況。有任何想法嗎?

+0

你給web api項目添加處理程序的原因是什麼? – Darren

+0

我讀過ashx很適合處理文件,並且有人說ashx最適合那種文件。 –

+0

問題是你在混合技術。真的,這聽起來像你想知道如何接受一個Web API中的文件 - 這是更好的問題,然後 - 像這樣http://stackoverflow.com/questions/34168395/how-to-post-and-receive- a-file-with-web-api - 處理程序以不同的方式做到這一點(更簡單但不一定更好) - 我將在控制器中使用,而不是在web api項目中使用處理程序 – Darren

回答

1

您必須映射處理程序,但是,它不是mvc意義上的控制器,所以我會將它置於應用程序的特殊文件類型處理程序的位置。

要連接它,您需要通過配置使ASP.NET知道處理程序。

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

謹慎的字 - 做這個應用程序是要同時利用MVC處理管道與傳統的ASP.NET管道。

你不直接調用你的處理程序。您已經指定您有興趣檢查具有特定延期和/或路徑的請求,而這通常會被忽略。要測試處理程序,只需發送一個http請求到端點,該端點將解析爲您指定要處理的處理程序的內容。

相關問題