WCF: служба отладки через службы терминалов - PullRequest
0 голосов
/ 26 июня 2009

Я являюсь частью распределенной команды разработчиков. Мы все работаем через терминальные сервисы, обращаясь к удаленному серверу, на котором расположены наши приложения. Мы работаем над проектом, в котором клиентское приложение использует службу WCF, которая предоставляет все функциональные возможности бизнес-логики.

В нашем процессе разработки разработчику часто предлагается разработать полный вариант использования от пользовательского интерфейса до доступа к базе данных, включая сервис и бизнес-логику. В таких случаях разработчик должен иметь возможность отлаживать функции / методы на стороне сервера, которые он / она создал для данного варианта использования. Проблема заключается в том, что служба должна быть запущена, и когда другому разработчику необходимо отладить его / ее работу, выдается исключение (я думаю, что это «AddressAlreadyInUseException», не уверен), и 2-й разработчик не может выполнить какой-либо вид отладка на сервисе. Это происходит даже при том, что у нас (конечно же) разные имена пользователей Windows, и, следовательно, мы работаем в разных сессиях.

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

Я хотел бы знать, можете ли вы порекомендовать нас. Возможно, есть какой-то инструмент (даже если мы должны заплатить за него), который может каким-то образом изолировать рабочее пространство каждого разработчика на сервере ... или, может быть, нам просто нужно что-то изменить в своей работе.

Буду очень признателен за любые советы или подсказки. С уважением,

Гонсало

Ответы [ 2 ]

0 голосов
/ 01 сентября 2009

Эй, чувак, отладчик подключается через IP-связь. Это означает, что если служба или процесс связывает прослушиватель, никакая другая служба или процесс не может связать этот IP-порт во второй раз.

Это причина для исключения.

В Citrix у вас есть конфигурация виртуального IP. Вы также можете разместить виртуальную машину на сервере, который обслуживает только одного разработчика. Это также решило бы эту проблему

0 голосов
/ 26 июня 2009

Я бы порекомендовал, чтобы у каждого разработчика была своя копия серверных сервисов.

Когда мы разрабатываем, каждый разработчик имеет полную среду на своем компьютере. Когда все готово, они регистрируются в системе контроля версий. Когда другие разработчики получают последнюю версию, новая функциональность распространяется на других разработчиков.

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

...