Owin OAuth localhost / Token devuelve 404

En primer lugar, todo funciona cuando lo ejecuto desde Visual Studio utilizando iis express .

Tengo un Asp.Net Web Api ejecutando Owin OAuth. Esta es la parte de configuración de mi clase de Startup :

 private static void ConfigureAuth(IAppBuilder app) { var oAuthOptions = new OAuthAuthorizationServerOptions { #if DEBUG AllowInsecureHttp = true, #endif TokenEndpointPath = new PathString("/Token"), AccessTokenExpireTimeSpan = TimeSpan.FromDays(30), Provider = new ApplicationOAuthProvider() }; app.UseOAuthAuthorizationServer(oAuthOptions); app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions()); } 

Esta es la parte de Register de mi WebApiConfig.cs

 public static void Register(HttpConfiguration config) { // Web API configuration and services config.SuppressDefaultHostAuthentication(); config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType)); var cors = new EnableCorsAttribute("*", "*", "*"); config.EnableCors(cors); // Web API routes config.MapHttpAttributeRoutes(); // OData var builder = new ODataConventionModelBuilder(); builder.EntitySet("Employee"); config.MapODataServiceRoute( routeName: "ODataRoute", routePrefix: "odata/", model: builder.GetEdmModel() ); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); } 

He implementado esta aplicación en IIS versión 8.5. * Y todo funciona, excepto el punto final localhost/Token . Es un proyecto combinado de MVC + Web Api.

Estoy utilizando el grupo de aplicaciones .NET v4.5 (.NET CLR versión: 4.0) con el modo de canalización integrado y Microsoft.Owin.Host.SystemWeb.dll está presente en la carpeta bin.

¿Por qué obtengo 404 cuando hago una solicitud al punto final del token?

Tuve el mismo problema. Aquí está tu problema:

 #if DEBUG AllowInsecureHttp = true, #endif 

Localmente (IISExpress), está ejecutando una comstackción DEBUG y su directiva de comstackción establece el AllowInsecureHttp en true . Esto significa que puede solicitar un nuevo token de OAuth a través de http y https.

Implementar en IIS significa que primero debe realizar una comstackción RELEASE. Así que la directiva del comstackdor omite la línea AllowInsecureHttp . La propiedad por defecto es false , lo que significa que solo puede obtener un token OAuth sobre http s . Si intenta pedir un token a través de http, el servidor responderá con un 404 .