1. public class IParam - по названию это интерфейс. Переименуйте, иначе будете и сами путаться и других.
2.
// POST api/<controller>
// PUT api/<controller>/5
// DELETE api/<controller>/5
где так учат???
делайте правильно:
[HttpGet, Route("~/api/Products")
public IList<IParam> GetAll()
{
}
[HttpGet, Route("~/api/Products/{id}")
public IParam Get(int id)
{
}
[HttpPost, Route("~/api/Products")]
public void Post(string value)
{
}
[HttpPut, Route("~/api/Products/{id}")]
public void Put(int id, string value)
{
}
[HttpDelete, Route("~/api/Products/{id}")]
public void Delete(int id)
{
}
3. "Приложение постоянно должно снимать показатели, а не ждать обращений по WebAPI"
а тогда зачем вам WebApi скрещивать ? пусть будет консольное приложение или слежба, которая в лог/БД пишет ваши показатели.
и будет отдельный WebAPI сайт на ISS который может отдавать эти данные из лога/БД.