首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IRouteHandler不通过RouteConfig路由

IRouteHandler不通过RouteConfig路由
EN

Stack Overflow用户
提问于 2015-07-03 02:24:02
回答 1查看 657关注 0票数 0

我有一个IRouteHander类,用于动态调整图像大小并向其添加过期头,最近我迁移到MVC5,现在更新代码。我试图在RouteConfig.cs中为该类注册相同的路由。

代码语言:javascript
复制
routes.Add(new Route("Image/{w}/{h}/{src}", new ThumbImageRouteHandler()));

但是这个路径不再像在MVC3上那样工作了,并且在MVC5中产生了404个错误。这里有我遗漏的东西吗?这条路通向

代码语言:javascript
复制
public class ThumbImageRouteHandler : IRouteHandler
{
         public IHttpHandler GetHttpHandler(RequestContext requestContext)
            {
                HttpHanler httpHandler = new HttpHanler();
                return httpHandler;
            }
            public class HttpHanler : IHttpHandler
            {
                public bool IsReusable
                {
                    get
                    {
                        return false;
                    }
                }
                public void ProcessRequest(HttpContext context)
                {
                //Do something
                }
               }
           }
}

请帮我解决这个问题。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-03 02:38:12

经过研究,我发现我需要在webconfig中添加一行才能让它工作,下面是如何做到的。

代码语言:javascript
复制
  <system.webServer>
    <handlers>
      <add name="ApiURIs-ISAPI-Integrated-4.0-Image" path="/Image/*" verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
  </system.webServer>

因为IRouteHandler正在用动态路径生成大小调整的图像,而IIS认为这是指向目录的实际路径,因为有点(.)在链接中,它认为它是一个扩展,实际上不是。因此,我们必须在Web.Config中添加一个处理程序,以使其正常工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31197504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档