2017-07-27 29 views
2

Web APiをMpcでASp.NETアプリケーションに組み込もうとしています。アプリケーションはIdentity Frameworkを使用して自身を認証します。Web Apiリソースが見つかりません

私はスルー/トークン認証が正しいか、正しくトークンを返しますが、以下のGET呼び出しでこの構成

Sub Application_Start() 
    AreaRegistration.RegisterAllAreas() 
    RegisterRoutes(RouteTable.Routes) 

    WebApiConfig.Register(GlobalConfiguration.Configuration) 

    ModelBinders.Binders.Add(GetType(Decimal), New DecimalModelBinder()) 
    ModelBinders.Binders.Add(GetType(Decimal?), New DecimalModelBinder()) 

End Sub 

を参照したのGlobal.asaxでWebApiConfig

Imports System.Web.Http 

Namespace ActualizadorApp.Api 
    Public NotInheritable Class WebApiConfig 
     Private Sub New() 
     End Sub 
     Public Shared Sub Register(config As HttpConfiguration) 
      ' TODO: Add any additional configuration code. 

      ' Web API routes 
      config.MapHttpAttributeRoutes() 

      config.Routes.MapHttpRoute(name:="Api", routeTemplate:="api/{controller}/{id}", defaults:=New With { 
       Key .id = RouteParameter.[Optional] 
      }) 

      ' WebAPI when dealing with JSON & JavaScript! 
      ' Setup json serialization to serialize classes to camel (std. Json format) 
      Dim formatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter 
      formatter.SerializerSettings.ContractResolver = New Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver() 
     End Sub 
    End Class 
End Namespace 

を追加しましたクライアントが私に返すドライバに404 誰かが私が間違っていると教えてもらえますか?

enter image description here

Imports System.Web.Http 

<Authorize()> 
Public Class TestController 
    Inherits ApiController 
    'public TestController() { } 

    ' GET api/test 
    Public Function GetValues() As IEnumerable(Of String) 
     Return New String() {"value1", "value2"} 
    End Function 

    ' GET api/test/5 
    Public Function GetValue(id As Integer) As String 
     Return "value" 
    End Function 

End Class 

答えて

1

Web APIをMVCルート前に登録する必要があります。また、スイッチバックする必要があります。GlobalConfiguration

Sub Application_Start() 
    AreaRegistration.RegisterAllAreas() 
    'Regsiter Web API routes before MVC routes 
    GlobalConfiguration.Configure(WebApiConfig.Register) 
    'MVC routes 
    RegisterRoutes(RouteTable.Routes) 

    ModelBinders.Binders.Add(GetType(Decimal), New DecimalModelBinder()) 
    ModelBinders.Binders.Add(GetType(Decimal?), New DecimalModelBinder()) 

End Sub 
関連する問題