Реализую простенькое консольное приложение на .net, которое должно генерировать возвращать ответы на запросы по web api.
При обращении генерирует следующую ошибку:
System.NullReferenceException
в System.Web.Http.SelfHost.HttpSelfHostServer.ProcessRequestContext(ChannelContext channelContext, RequestContext requestContext)
Код Main:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.Http;
using System.Web.Http.SelfHost;
using System.Threading;
namespace Stub
{
class Program
{
public static meteo_ptog curr_obj = new meteo_ptog();
static void Main(string[] args)
{
//Конфигурируем запускаем сервак
var selfHostConfiguraiton = new HttpSelfHostConfiguration("http://127.0.0.1:5555");
selfHostConfiguraiton.Routes.MapHttpRoute(name: "DefaultApiRoute", routeTemplate: "api/{controller}", defaults: null);
using (var server = new HttpSelfHostServer(selfHostConfiguraiton))
{
server.OpenAsync().Wait();
}
//Периодически генерим показатели
while (true)
{
curr_obj.get_params();
curr_obj.next_time();
Console.WriteLine("Reading params OK Iteration" + curr_obj.iterat + "time " + curr_obj.time);
Thread.Sleep(20000);
}
}
}
Класс показателей Meteo_ptog будет лишьним (если нужно дополнительно выложу)
Интерфейс к нему:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ESP_Stub
{
public class IParam
{
public int time { get; set; }
public int iterat { get; set; }
public string param_1 { get; set; }
public string param_2 { get; set; }
public string param_3 { get; set; }
public string version { get; set; }
public string cordinates { get; set; }
}
}
И сам контроллер:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace ESP_Stub
{
public class ProductController : ApiController
{
public IList<IParam> GetAllProducts()
{
return new List<IParam>(){
new IParam(){time=Program.curr_obj.time,
iterat =Program.curr_obj.iterat,
param_1=Program.curr_obj.param_1,
param_2=Program.curr_obj.param_2,
param_3=Program.curr_obj.param_3,
version=Program.curr_obj.version,
cordinates=Program.curr_obj.cordinates
}
};
}
// POST api/<controller>
public void Post(string value)
{
}
// PUT api/<controller>/5
public void Put(int id, string value)
{
}
// DELETE api/<controller>/5
public void Delete(int id)
{
}
} }
Помогите пожалуйста разобратся
P.s Приложение постоянно должно снимать показатели, а не ждать обращений по WebAPI