2015-12-19 3 views
1

У меня есть небольшая ошибка в коде. Создаю и открываю новый экземпляр HttpSelfHostServer. В некоторых особых случаях я вынужден закрыть текущий объект сервера и открыть новый. Так я называю тесную функцию (и отчуждать объект):Закрытие HttpSelfHostServer

_server.CloseAsync().Wait(); 
_server.Dispose(); 
_server = null; 

Но до сих пор, когда я пытаюсь открыть новую службу с той же конечной точкой я получаю следующее сообщение об ошибке:

System.InvalidOperationException: A registration already exists for URI 

и предложения ?

ответ

0

Общий совет для TAP не блокировать на асинхронных вызовах. Это означает, что вы не вызываете «Ожидание» или «Результат», поскольку это может легко вызвать взаимоблокировки.

Подробнее here

Трудно сказать, не видя больше кода, что именно будет запиранием в этом случае. Но если это проблема, исправление просто и легко проверить

Вместо того, чтобы сделать это:

_server.CloseAsync().Wait(); 

ли это:

await _server.CloseAsync(); 

Точно так же, если вы делаете это:

_server.StartAsync().Wait(); 

Вместо этого сделайте это

await _server.StartAsync(); 
Смежные вопросы