In der asp.net mvc 5 + Web-API 2 am arbeiten, einige der Webapi-Routen, die ich definiert, funktionieren nicht, während einige sind funktioniert perfekt. Ich kann nicht erkennen, was das Problem ist. Und bevor du fragst, habe ich die ganzen SO-Fragen gelesen und alle Lösungen angewendet, die ich finden kann, aber nichts davon scheint in meiner derzeitigen Situation zu funktionieren. Ich habe auch überprüft, doppelt überprüft und trotzdem kann ich nicht herausfinden warum. Hier sind einige der Konfigurationen und Routenregistrierungen, von denen ich denke, dass sie Auswirkungen auf Web-API haben.Einige meiner ASP.net API-Attribut-basierte Routing sind 404 zurück (nicht gefunden)
Routendefinition
[HttpPost]
[Route("FollowApi/{profileId:int}/FollowClient" Name = "FollowClient")]
Application_Start Konfiguration
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
Webconfig Konfiguration
<system.webServer>
<modules>
<remove name="FormsAuthentication" />
<add name="ImageResizingModule" type="ImageResizer.InterceptModule" />
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
</modules>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
Bitte, jede Hilfe oder Hinweise, warum dieses Problem auftritt, wird ernsthaft geschätzt werden, wie ich in einer zeitbeschränkten Situation bin.
bearbeiten
Arbeiten api
public class CommonApiController : BaseApiController
{
[Authorize]
[HttpGet]
[Route("Client/GetInfoCounts")]
public IHttpActionResult GetInfoCounts()
{
//Method body
}
}
Nicht api Arbeits
public class FollowApiController : BaseApiController
{
[HttpPost]
[Route("FollowApi/{profileId:int}/FollowClient")]
public IHttpActionResult Follow(int profileId)
{
//Method body
}
}
Es wäre gut, wenn Sie den Code für die Controller anzeigen könnten, wo die Route funktioniert, und dann für Controller codieren, wo sie nicht funktionieren. Sind alle Routen attributbasiert oder haben Sie einige davon in der Konfiguration? – Martin
Okay, lass mich die Frage bearbeiten. – Cizaphil
Wäre es nicht sinnvoll, Ihre Route mit dem Parameter als letztes Token zu definieren: '[Route (" FollowApi/FollowClient/{profileId: int} ")]? – Alexei