Asp.net web api 手动添加Web API 2-获取404

Asp.net web api 手动添加Web API 2-获取404,asp.net-web-api,asp.net-web-api2,restful-url,Asp.net Web Api,Asp.net Web Api2,Restful Url,我回到了一个被搁置的解决方案,当我最初创建它时,我没有勾选WebAPI。我已经手动添加了它,但是当我调用我的URL时,我收到了404。我怀疑我缺少一些配置,但我不确定 我的web api控制器 [RoutePrefix("search")] public class SearchController : BaseWebApiController { private readonly IAmtProxy _amtProxy; public Sear

我回到了一个被搁置的解决方案,当我最初创建它时,我没有勾选WebAPI。我已经手动添加了它,但是当我调用我的URL时,我收到了404。我怀疑我缺少一些配置,但我不确定

我的web api控制器

[RoutePrefix("search")]
    public class SearchController : BaseWebApiController
    {
        private readonly IAmtProxy _amtProxy;

        public SearchController(IAmtProxy amtProxy)
        {
            this._amtProxy = amtProxy;
        }

        [HttpGet]
        [Route("supportticket/{id}")]
        public HttpResponseMessage GetSupportTicket(int id)
        {
            try
            {
                var result = _amtProxy.GetSupportTicketById(id);
                return GetResponse(result);
            }
            catch (Exception e)
            {
                return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e.Message);
            }
        }

        [HttpGet]
        [Route("supportticket")]
        public HttpResponseMessage GetAllSupportTickets()
        {
            try
            {
                var result = _amtProxy.GetAllSupportTickets();
                return GetResponse(result);
            }
            catch (Exception e)
            {
                return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, e.Message);
            }
        } 
    }
返回404的url示例

http://localhost:60541/search/supporticket/1

The resource cannot be found.

Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. 

Requested URL: /search/supporticket/1
global.asax.cs中的应用程序启动具有以下代码:

protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            Bootstrapper.Initialise();
        }
我也有我的WebApiConfig

 public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional});
        }
    }
最后,我使用nuget获得了WebAPI2,并成功安装了它


有人知道我可能遗漏了什么吗?

您的配置看起来不错

您似乎拼错了url:

http://localhost:60541/search/supporticket/1
应该是:

http://localhost:60541/search/supportticket/1
根据你的实施:

[Route("supportticket/{id}")]

您能比较这两个项目的web.config值吗?可能会为web api 2项目添加一些更新/新值。