2013-08-26 2 views
3

방금 ​​WebAPI 프로젝트에서 AttributeRouting의 최신 버전 (v3.x로)을 업데이트했으며 지금까지 볼 수 없었던 오류가 발생하기 시작했습니다. 통화가 나는 오류 다음과 같이 얻을 API로 구성되어 이제 때마다AttributeRouting WebAPI 오류 발생

:

System.InvalidOperationException: The constraint entry 'inboundHttpMethod' on the route with route template 'my/path' must have a string value or be of a type which implements 'IHttpRouteConstraint'. 
    at System.Web.Http.Routing.HttpRoute.ProcessConstraint(HttpRequestMessage request, Object constraint, String parameterName, HttpRouteValueDictionary values, HttpRouteDirection routeDirection) 
    at System.Web.Http.Routing.HttpRoute.ProcessConstraints(HttpRequestMessage request, HttpRouteValueDictionary values, HttpRouteDirection routeDirection) 
    at System.Web.Http.Routing.HttpRoute.GetRouteData(String virtualPathRoot, HttpRequestMessage request) 
    at AttributeRouting.Web.Http.Framework.HttpAttributeRoute.GetRouteData(String virtualPathRoot, HttpRequestMessage request) 
    at System.Web.Http.WebHost.Routing.HttpWebRoute.GetRouteData(HttpContextBase httpContext) 
    at System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext) 
    at System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) 
    at System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) 
    at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 
    at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 

그것은 몇 달 동안 문제없이 노력하고 있어요.

문서 세부 정보가 아니라 사용 방법이 변경되었습니다. 설정 파일이 올바르게 보입니다.

무엇이 잘못 되었나요? 이 사실을보고 한 다른 사람을 찾을 수 없습니다.

답변

4

확실히 메모리 호스팅 유형 문제입니다. 최근에 MVC 5로 업데이트 한 후 동일한 문제가 발생합니다. 다양한 게시물을보고 실제로 궁극적으로 나를 도왔습니다. 여기 내가 어떻게 이것을 해결 했는가.

특성 라우팅을 위해 라이브러리를 설치 한 후에는 global.ascx 파일에서 다음을 가져야합니다.

AttributeRoutingHttpConfig.RegisterRoutes(GlobalConfiguration.Configuration.Routes); 

이 AttributeRoutingHttpConfig 클래스에서 다음 코드 교체 : 여기

routes.MapHttpAttributeRoutes(cfg => 
{ 
      cfg.InMemory = true; 
      cfg.AutoGenerateRouteNames = true; 
      cfg.AddRoutesFromAssemblyOf<ANY_API_Controller>(); 
     }); 

routes.MapHttpAttributeRoutes(); 

을 ANY_API_Controller 프로젝트에서 apicontroller 클래스의 어떤을 의미합니다.

+0

아, 재미 있습니다. 정보 주셔서 감사합니다! – Jammer