自定义处理程序未处理具有json扩展名的路径
本文关键字:json 扩展名 路径 处理 程序 未处理 自定义 | 更新日期: 2023-09-27 18:25:01
我正在尝试添加自定义处理程序-DayOfWeekHandler(Pro ASP.NET MVC 5平台手册用于安装)。
routes.config:中的路由
routes.Add(new Route("handler/path", new CustomHandler()
{ HandlerType = typeof(DayOfWeekHandler) }));
自定义处理程序:
public class CustomHandler : IRouteHandler
{
public Type HandlerType;
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
return (IHttpHandler)Activator.CreateInstance(HandlerType);
}
}
当我输入"http://localhost:81/handler/path在浏览器中-它正确地从处理程序调用ProcessRequest
方法,但是当我输入http://localhost:81/handler/path.json",我得到404.0错误:
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. In this case it is not even calling Process Request method.
DayOfWeekHandler中的ProcessRequest方法:
public void ProcessRequest(HttpContext context)
{
string day = DateTime.UtcNow.DayOfWeek.ToString();
context.Response.Write($"Hello from {GetType().Name} Handler :)");
if (context.Request.CurrentExecutionFilePathExtension == ".json")
{
context.Response.ContentType = "application/json";
context.Response.Write($" '"day'" : '"{day}'" ");
}
else
{
context.Response.ContentType = "text/html";
context.Response.Write($"<div>It is {day}!</div><br/>");
}
}
此外,当处理程序在web.config文件中注册时,它也可以正常工作。我是不是错过了什么。请帮助我理解为什么没有呈现/handler/path.json。
我不得不将Web.config添加到包含JSON 的文件夹中
<?xml version="1.0"?>
<configuration>
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
</configuration>
我想你也可以把它添加到你的根配置中