У меня есть приложение, в котором есть служба отдыха на основе NancyFx, и я нахожу его очень классным фреймворком. Но у меня очень большая проблема с его остановкой. Мой хост-класс выглядит так:
public class RestHost : IStartStopAble
{
private readonly string _uri;
private readonly IWindsorContainer _container;
private NancyHost _host;
private Thread _wsThread;
private WindsorBootstrapper _windsorBootstrapper;
public RestHost(string uri, IWindsorContainer container)
{
_uri = uri;
_container = container;
}
public void Start()
{
var uri = new Uri(_uri);
_windsorBootstrapper = new WindsorBootstrapper(_container);
_host = new NancyHost(uri, _windsorBootstrapper);
_host.Start();
}
public void Stop()
{
_host.Dispose();
}
}
Как видите, я использую Windsor вместе с Нэнси. Все отлично работает, я вызываю Start, Stop и конструктор из основного потока, но когда я удаляю свой хост, я ловлю это:
HttpListener: HttpListenerException: The I/O operation has been aborted because of either a thread exit or an application request
исключение. Я нашел эту статью: http://maykov.blogspot.ru/2009/02/c-httplistener-httplistenerexception-io.html но я использую основной поток и не понимаю, как я могу "Сохранить" поток, в котором создается HttpListener, а также как я могу его передать к Нэнси.
Я буду очень благодарен за любую помощь, но я даже не знаю, что я могу сделать с исключением HttpListener в ядре .Net framework.