Я реализовал ниже 3 методов в моем apicontroller->
EnableFlowAnalytics:
Action = POST, MethodURI = api / ConfigurationApiController / EnableFlowAnalytics, карта маршрута = config.Routes.MapHttpRoute («Маршрут EnableFlowAnalytics», «api / ConfigurationApiController / EnableFlowAnalytics», новый {контроллер = «ConfigurationApi»});
DeleteFlowAnalytics:
Action = POST, MethodURI = api / ConfigurationApiController / DeleteFlowAnalytics, карта маршрута = config.Routes.MapHttpRoute ("Маршрут DeleteFlowAnalytics", "api / ConfigurationApiController / DeleteFlowAnalytics", новый {контроллер = "ConfigurationApi" }9);
GetFlowAnalytics:
Action = GET, MethodURI = api / ConfigurationApiController / GetFlowAnalyticsConfig / subscription / {subscriptionGuid} / resourceGroups / {resourceGroupName} / networkSecurityGroups / {nsgName},
карта маршрутов = config.Routes.MapHttpRoute («GetFlowAnalyticsConfig Route», «api / ConfigurationApiController / GetFlowAnalyticsConfig / subscriptions / {subscriptionGuid} / resourceGroups / {resourceGroupName} / networkSecurityGroups / {nsgName};« nsgName}; «nsgName};« nsgName}; «nsgName};) nA
Когда я вызываю эти три метода из моего клиентского кода, EnableFlowAnalytics и GetFlowAnalyticsConfig правильно маршрутизируются, но DeleteFlowAnalytics не маршрутизируется, вместо удаления вызов снова включается в EnableFlowAnalytics. Я не могу понять эту логику маршрутизации, поскольку URI не является двусмысленным, он совершенно другой.
public class ConfigurationApiController : ApiController
{
[System.Web.Http.Route("api/ConfigurationApiController/DeleteFlowAnalytics")]
[System.Web.Http.ActionName("DeleteFlowAnalytics")]
public void DeleteFlowAnalytics(
string nsgResourceId)
{
//implementation}
[System.Web.Http.Route("api/ConfigurationApiController/EnableFlowAnalytics")]
[System.Web.Http.ActionName("EnableFlowAnalytics")]
public void EnableFlowAnalytics(
EnableFlowAnalyticsArgs enableFlowAnalytics)
{
//implemetation
}