Удаленная отладка с помощью Amazon Web Services (EC2) и c # Windows Service / WCF

#c# #wcf #windows-services #amazon-ec2 #remote-debugging

#c# #wcf #windows-services #amazon-ec2 #удаленная отладка

Вопрос:

У меня есть Windows Server 2008 R2 в облаке Amazon EC2. Я хотел бы иметь возможность отлаживать мою службу C # Windows или службу WCF, которая запущена на этом сервере, со своего рабочего стола в моем офисе.

В прошлом мы обходили это, устанавливая Visual Studio на сервер в облаке, но мы используем удаленную отладку для наших локальных серверов, поэтому я надеялся, что есть способ заставить это работать в облаке.

Кто-нибудь выполнял удаленную отладку в Amazon cloud без VPC / домена в облаке?

Будем признательны за любые предложения или решения.

Ответ №1:

Удаленная отладка с экземпляром EC2 ничем не отличается от удаленной отладки с локальным сервером, ЗА исключением конфигурации брандмауэра…

Я бы рекомендовал настроить VPN-соединение с сервером EC2 вместо открытия портов брандмауэра (PPTP выполняется быстро и просто).

Если вы предпочитаете открывать порты брандмауэра, я «думаю», вам, по крайней мере, понадобятся следующие (непроверенные):

TCP 139, TCP 445, UDP 137, UDP 138 (все связаны с DCOM)

Комментарии:

1. Для удаленной отладки Visual Studio 2012 необходимо использовать порты 4016 и 4017.

Ответ №2:

Еще одна вещь, которая всегда вызывает у меня проблемы в экземплярах EC2, — это не передача параметра /hostname в msvsmon. msvsmon предпочитает использовать по умолчанию внутреннее имя хоста и при запуске будет отображаться что-то вроде «прослушивание по ‘ip-1-2-3-4 .us-west-2.compute.internal», что означает, что он будет игнорировать попытки подключения от клиентов Visual Studio, которые думают, что они разговаривают с ‘ec2-7-8-9-0.us-west-2.compute.amazonaws.com ‘. Чтобы исправить это, получите полное общедоступное DNS-имя или общедоступный IP-адрес вашего экземпляра EC2, а затем запустите msvsmon.exe как:

 msvsmon.exe /hostname ec2-7-8-9-0.us-west-2.compute.amazonaws.com
  

Затем в Visual Studio:

  1. Инструменты -> Присоединить к процессу
  2. Установите для транспорта значение «По умолчанию»
  3. Установите в качестве квалификатора то, что вы передали для имени хоста при запуске msvsmon.exe