无法连接到控制器中的方法

时间:2019-04-26 13:22:00

标签: c# asp.net asp.net-web-api

我正在使用asp.net Web API。我正在尝试从服务器获得积极的响应,但是程序没有看到控制器中的方法之一。它进入控制器构造函数,但不深入。 响应是

  

状态码404,原因短语:未找到。

我知道这可能是方法名称/参数/任何地方的错字,但对我来说一切似乎都很好。我本可以忽略一些东西。

API运行正常,我尝试使用其他方法。

这是控制器方法:

    [HttpGet]
    [Route("api/ClientFiles/GetScanStatus")]
    [ActionName("GetScanStatus")]
    private Tuple<bool, bool?, bool?> GetScanStatus(int scanTypeId, int clientId, int inventoryId)
    {
        //businessLogic here 


        return new Tuple<bool, bool?, bool?>(false, null, null);
    }

调用控制器的方法:

  public static async Task<Tuple<bool, bool?, bool?>> GetScanStatus(int scanTypeId, int clientId, int inventoryId)
  {
            using (HttpClient client = new HttpClient())
        {
            client.Timeout = new TimeSpan(0, 0, 90);
            HttpResponseMessage response = await client.GetAsync($"{ConnectionURL}api/ClientFiles/GetScanStatus/?scanTypeId={scanTypeId}&clientId={clientId}&inventoryId={inventoryId}").ConfigureAwait(false);

            if (response.IsSuccessStatusCode)
            {
                var result = await response.Content.ReadAsAsync<Tuple<bool, bool?, bool?>>();
                return result;
            }
        }

        return null;
    }

response.RequestedUri

http://localhost:61372/api/ClientFiles/GetScanStatus/?scanTypeId=26&clientId=12&inventoryId=25482

1 个答案:

答案 0 :(得分:3)

从您的代码看来,您的控制器方法是private,因此不可见!

使方法public

[HttpGet]
[Route("api/ClientFiles/GetScanStatus")]
[ActionName("GetScanStatus")]
public Tuple<bool, bool?, bool?> GetScanStatus(int scanTypeId, int clientId, int inventoryId) {
    //...
}

我认为它会起作用。