Есть класс-обертка над HttpListener. Запускает listener сразу из конструктора. Этот класс добавлен в качестве DataContext через разметку.
Я так понимаю, что студия судя по всему компилит код, что бы отображать свойства зависимостей в разметке при разработке.
Проблема в том что, даже не запустив проект сервер работает. А при попытке запуска ругается, мол на этом компьютере данный префикс уже зарегистрирован.
В конечном итоге студия решила что с нее хватит. Зависла. Пришлось прекратить ее страдания)
Можно, конечно, вынести запуск сервера в отдельный метод, потом запускать командой. Но хотелось бы решить проблему, а не обойти ее.
Дело в том, что дизайнер студии компилит классы. И естественно, конструктор класса прогоняется тоже. Поэтому самым простым решением будет вынести запуск листенера в отдельный метод, который вы будете дёргать, когда программа действительно запускается.
<Window>
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<command:EventToCommand
Command="{Binding RunListenerCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
....
</Window>
RunListenerCommand - команда, которую вы определили в своей ViewModel.
Вторым вариантом будет в конструктор встроить вот такое:
if(!DesignerProperties.GetIsInDesignMode(this))
{
// запускаем листенер
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей