简体   繁体   English

HTTP错误404.0 - 未找到WebAPI

[英]HTTP Error 404.0 - Not Found WebAPI

I am create a authentication WebAPI. 我正在创建一个身份验证WebAPI。

in APP_Start Folder: 在APP_Start文件夹中:

  • WebApiConfig file: WebApiConfig文件:

     public static string UrlPrefix { get { return "api"; } } public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute("DefaultApi", string.Concat(WebApiConfig.UrlPrefix, "/{controller}/{id}"), new { id = RouteParameter.Optional }); MediaTypeHeaderValue mediaTypeHeaderValue = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault<MediaTypeHeaderValue>((MediaTypeHeaderValue t) => t.MediaType == "application/xml"); config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(mediaTypeHeaderValue); } public static void Login(HttpConfiguration config) { config.Routes.MapHttpRoute("Login", string.Concat(WebApiConfig.UrlPrefix, "/{controller}/{username}/{password}"), new { username = RouteParameter.Optional, password = RouteParameter.Optional }); MediaTypeHeaderValue mediaTypeHeaderValue = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault<MediaTypeHeaderValue>((MediaTypeHeaderValue t) => t.MediaType == "application/xml"); config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(mediaTypeHeaderValue); } 
  • WebApiApplication file: WebApiApplication文件:

     protected void Application_PostAuthorizeRequest() { HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required); } protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); WebApiConfig.Login(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); } 

I have the AuthenticationController in my controllers folder. 我在controllers文件夹中有AuthenticationController。 I am not sure what am I doing wrong. 我不确定我做错了什么。 I have a few other APIs that work fine. 我有一些其他API工作正常。

In the url I put the url I am entering is localhost:4453/api/authentication/user/pass. 在我的网址中,我输入的网址是localhost:4453 / api / authentication / user / pass。 if I only enter user I get. 如果我只输入用户我得到。

{"Message":"No HTTP resource was found that matches the request URI 'http://localhost:4453/api/Authentication/asas/'.","MessageDetail":"No action was found on the controller 'Authentication' that matches the request."}
  • AuthenticationController: AuthenticationController:

      public bool Get(string username, string password) { return true; } 

Global.aspx必须有这条线

WebApiConfig.Login(GlobalConfiguration.Configuration);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM