#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:
- Инструменты -> Присоединить к процессу
- Установите для транспорта значение «По умолчанию»
- Установите в качестве квалификатора то, что вы передали для имени хоста при запуске msvsmon.exe