2014-10-08 13 views
10
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web.Http; 
using InCubatize.Helpers; 

namespace InCubatize 
{ 
    public static class WebApiConfig 
    { 
     public static void Register(HttpConfiguration config) 
     { 
      //1 
      ////Create and instance of TokenInspector setting the default inner handler 
      //TokenInspector tokenInspector = new TokenInspector() { InnerHandler = new HttpControllerDispatcher(config) }; 

      ////Just exclude the users controllers from need to provide valid token, so they could authenticate 
      //config.Routes.MapHttpRoute(
      // name: "Authentication", 
      // routeTemplate: "api/users/{id}", 
      // defaults: new { controller = "users" } 
      //); 

      //config.Routes.MapHttpRoute(
      // name: "DefaultApi", 
      // routeTemplate: "api/{controller}/{id}", 
      // defaults: new { id = RouteParameter.Optional }, 
      // constraints: null, 
      // handler: tokenInspector 
      //); 
      //end1 


      config.Routes.MapHttpRoute(name: "DefaultApiWithAction", 
          routeTemplate: "api/{controller}/{action}/{id}", 
          defaults: new { id = RouteParameter.Optional }); 

      config.Routes.MapHttpRoute(name: "DefaultApiWithActionAndTwoParams", 
         routeTemplate: "api/{controller}/{action}/{id1}/{id2}", 
         defaults: new { id = RouteParameter.Optional }); 

      config.Routes.MapHttpRoute(name: "DefaultApiWithActionAndFiveParams", 
            routeTemplate: "api/{controller}/{action}/{id1}/{id2}/{id3}/{id4}/{id5}/{id6}", 
            defaults: new { id = RouteParameter.Optional }); 

      //Old Code. 
      config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 

      config.EnableQuerySupport(); 

      // To disable tracing in your application, please comment out or remove the following line of code 
      // For more information, refer to: http://www.asp.net/web-api 



      var json = config.Formatters.JsonFormatter; 
      json.SerializerSettings.PreserveReferencesHandling = 
       Newtonsoft.Json.PreserveReferencesHandling.None; 

      config.Formatters.Remove(config.Formatters.XmlFormatter); 
      config.EnableSystemDiagnosticsTracing(); 
     } 
    } 
} 

Uzyskanie poniżej błędu: -'System.Web.Http.HttpConfiguration' nie zawierają definicji 'EnableQuerySupport'

'System.Web.Http.HttpConfiguration' does not contain a definition for 'EnableQuerySupport' and no extension method 'EnableQuerySupport' accepting a first argument of type 'System.Web.Http.HttpConfiguration' could be found (are you missing a using directive or an assembly reference?)

+0

Sprawdziłem wersję system.web.http i jego prawidłowe. – user3705566

Odpowiedz

0

Sprawdź System.Web.Http.OData.dll - to gdzie metoda ta pochodzi, według MSDN

+1

Ok Teraz minęło. Dziękuję Ci. Ale otrzymuję podobny błąd dla "EnableSystemDiagnosticsTracing" proszę dać mi znać, jaki może być problem. – user3705566

+0

Należy zauważyć, że ta metoda jest już nieaktualna. https://msdn.microsoft.com/en-us/library/system.web.http.odata.enablequeryattribute(v=vs.118).aspx –

9

w Visual Studio przejdź do menu „Narzędzia” a następnie „Nuget Package Manager”, a następnie „Menedżer pakietów Konsola”

uruchomić polecenie poniżej i wil Naprawię ten problem. Przetestowałem to.

update-pakiet microsoft.aspnet.webapi Ponownie instaluje

Powiązane problemy