2015-07-03 15 views
0

我有一個IRouteHander類,我用它來動態調整圖像大小併爲其添加過期標題,最近我轉移到MVC5,現在更新我的代碼。我試圖註冊在RouteConfig.csIRouteHandler沒有通過RouteConfig路由

routes.Add(new Route("Image/{w}/{h}/{src}", new ThumbImageRouteHandler())); 

該類相同的路線,但是這條線路不工作了,就像是在MVC3和MVC5給予404錯誤。有什麼我在這裏失蹤?此路線導致

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 
       } 
       } 
      } 
} 

請幫我解決這個問題。謝謝

回答

1

經過研究後,我發現我需要在webconfig中添加一行以使其工作,這是如何。

<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中添加一個處理程序來使其工作。