C# 调用ApicController方法时找不到资源
当我试图调用api控制器404时。但当我尝试调用Controller方法时,它工作得很好。如果需要任何信息,请帮助并让我知道 TPServicesAPIController.cs:-C# 调用ApicController方法时找不到资源,c#,asp.net-mvc,asp.net-web-api,C#,Asp.net Mvc,Asp.net Web Api,当我试图调用api控制器404时。但当我尝试调用Controller方法时,它工作得很好。如果需要任何信息,请帮助并让我知道 TPServicesAPIController.cs:- using AgentVartualOffice.Models.LogIn; using System.Web.Mvc; using AgentVartualOffice.Models; using Newtonsoft.Json; using System.Text; namespace AgentVartua
using AgentVartualOffice.Models.LogIn;
using System.Web.Mvc;
using AgentVartualOffice.Models;
using Newtonsoft.Json;
using System.Text;
namespace AgentVartualOffice.Controllers.TPServices
{
public class TPServicesAPIController : ApiController
{
public string Myauth()
{
return "True";
}
}
}
Global.asax.cs:-
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Http;
namespace AgentVartualOffice
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
GlobalFilters.Filters.Add(new HandleErrorAttribute());
}
}
}
Invoke url:
http://localhost:61868/TPServicesAPI/Myauth
很可能是您调用了错误的URL 默认的基于Web API约定的路由通常以
API
public static class WebApiConfig {
public static void Register(HttpConfiguration config) {
// Attribute routing.
config.MapHttpAttributeRoutes();
// Convention-based routing.
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}", //<<--- default web API route template
defaults: new { id = RouteParameter.Optional }
);
}
}
因此,我建议您检查API配置并相应地更新被调用的URL
例如,通过调用:
api/TPServicesAPI/Myaut
很可能是您调用了错误的URL。默认Web API路由的前缀为API
,并且除非路由模板已更改,否则不使用操作名称。感谢更改url后使用foll的工作owinghttp://localhost:61868/api/TPServicesAPI/Myauth
routeTemplate: "api/{controller}/{action}/{id}"