Віддалене налагодження JavaScript з VS2015
Встановіть Visual Studio 2015 на машині для розробки. Більшість розробників знають, як це зробити, так що не будемо детально зупинятися на цьому.
Встановіть VS 2015 Remote Debugger на цільовій машині:
- Відвідайте www.microsoft.com/en-us/download/details.aspx?id=48155&NavToggle=True та завантажте версію, що відповідає розрядності цільової системи. Ви також можете встановити віддалений налагоджувач і на Windows із процесором ARM.
- Подвійним клацанням по rttols_setup_x64.exe запускаємо установник:
Після натискання на Install з'явиться віконце підтвердження UAC (User Account Control). Для встановлення інструментів віддаленого налагодження необхідні права адміністратора. Натискаємо Yes для продовження встановлення:
Програма встановлює необхідні файли:
Натискаємо Close і на цьому встановлення завершено:
Після успішної установки на цільовій машині ми зможемо виявити нову програму Remote Debugger:
Конфігурація VS 2015 Remote Debugger на цільовій машині.
-
Натискаємо на VS2015 Remote Debugger Configuration Wizard. Система попросить ввести облікові дані адміністратора системи або запропонує запуск із підвищеними привілеями, після надання чого, власне, і запуститься майстер. Натискаємо Next для продовження:
Вибираємо Run the Visual Studio 2015 Remote Debugger service та натискаємо Next. Вам не потрібно вводити пароль для облікового запису LocalSystem. Також, для роботи служби ви можете ввести надати інші облікові дані, які мають адміністративні права на цільовій машині:
На наступному екрані ви можете захотіти зняти виділення з третьої опції, якщо машина знаходиться всередині корпоративного домену і якщо ви з'єднуєтеся з машиноюбезпосередньо за допомогою кабелю Ethernet. Натискаємо для продовження Next:
Натискаємо Finish для завершення конфігурації:
Тепер відкриємо менеджер завдань і переконаємося, що віддалений налагоджувач запущений і готовий до використання. На 64-х розрядній системі ми бачимо два екземпляри відладчика: 32-х та 64-х розрядні.
Підключення VS2015 до VS2015 Remote Debugger на цільовій машині.
- Запустимо Internet Explorerна цільовій машині, де щойно встановили віддаленого відладчика VS2015 Remote Debugger. Відкриємо в ньому якийсь сайт для налагодження, наприклад, msn.com.
- На машині розробника відкриємо VS2015. НатискаємоDebug -> Attach to Process…
У вікніAttach to Process вказуємо цільову машину в поліQualifier. Або натискаємо кнопкуFind для пошуку машини в домені. У прикладі цільова машина має ім'я ContosoDev2:
За промовчанням список не буде оновлено, тому натискаємо на кнопкуRefresh для відображення списку запущених процесів. Також можна вибрати опціюShow processes from all users, якщо потрібно налагодити процес, запущений іншим користувачем. Вибираємо наш цільовий процес iexplore.exe і натискаємо кнопкуAttach :
- Якщо віддалений відладчик був налаштований для запуску з обліковим записомLocalSystem, тоді буде необхідно вибрати опціюShow processes from all users, щоб побачити ваші процеси. Інакше буде перераховано лише процеси облікового записуSYSTEM
- Кваліфікатор (полеQualifier ) може змінитися з ContosoDev2 на ContosoDev2:4020
- Переконайтеся, щоScript code вибрано в поліAttach to (як на скріншоті)
І ось, тепер ми можемо налагоджувати наш чудо сайт,відкритий на віддаленій машині, як завжди:
Налагодження JS коду в Web browser control (WebOC). Ви можете налагоджувати не тільки IE, але також і додаток (.NET / C++ managed / native), що є хостом для WebOC або Web Browser Control. Для цього просто запустіть програму на цільовій машині. У нашому прикладі ім'я .NET програми з WebOC буде PCOETest.exe. Відкрийте VS2015 і, слідуючи вже описаному процесу підключення до віддаленого процесу, підключіться до вашої програми замість IE.
Ви зможете проводити налагодження, як якщо б це була локальна керована програма, що виступає хостом для елемента керування веб-браузера.
Часті питання щодо налагодження та виправлення проблем (FAQ).
-
Не вдається знайти комп'ютер. Переконайтеся, що брандмауер не блокує з'єднання. Можете скористатися утилітою на зразок TCPView, щоб дізнатися, чи відкрито порт. Також для додаткової інформації можна звернутися до секціїFirewall Configuration або файлу довідки віддаленого відладчика на цільовій машині.
За лаштунками процес установки VS 2015 Remote Debugger конфігурує правила брандмауера для можливості віддаленого налагодження. Видалений налагоджувач за замовчуванням використовує порт TCP 4020. Ви можете використовувати інший порт, якщо потрібно. Переконайтеся, щоmsvsmon.exe на порті 4020 (або на вашому вибраному порту) брандмауером або іншим захисним програмним забезпеченням. Для x86 процесу на 64-розрядній ОС перевірте також, що порт 4021 відкритий.
Я не бачу потоки у вікні VS2015 Threads, коли налагоджую процес IE. Або не можу налагодити IE/цільовий процес.
Переконайтеся, що підключаєтеся до потрібного екземпляра IE. IE запускає два процеси при початковому завантаженні – процес кадрів (frame process) та процесвкладок (tab process). Ви повинні підключати відладчик до процесу вкладок, а не кадрів. Додаткова інформація: LCIE
Я все ще не бачу потоків у вікні VS2015 Threads при підключенні до процесу вкладок IE (IE Tab Process).
Якщо так, то вам необхідно налаштувати IE на цільовій машині для вирішення налагодження скриптів. Отже:
- Відкриваємо на цільовій машині процес Internet Explorer
- КлацаємоTools -> Internet Options, вибираємо вкладкуAdvanced
- На вкладці Advanced знімаємо виділення наступних двох пунктів:
Чи можу я запустити кілька екземплярів віддаленого відладчика? Скажімо, один для кожного користувача? Багато екземплярів віддаленого відладчика може бути запущено на одному комп'ютері. Це необхідно, якщо у нас є один сервер, який є спільним для багатьох користувачів і кожен користувач бажає мати власний екземпляр віддаленого відладчика для налагодження власних процесів.
Кожен екземпляр повинен працювати на своєму TCPIP порту. Це можна встановити, скориставшись меню Tools -> Options віддаленого відладчика або ключем командного рядка:
Для підключення до конкретного екземпляра віддаленого налагоджувача просто вкажіть ім'я комп'ютера та через двокрапку номер порту у вікні підключення до процесу (наприклад, MyServer:1234).
Чи можу я налагоджувати віддалений сервіс,скажімо, веб-сервіс, запущений на IIS?
Так. Ви можете запустити віддалений налагоджувач або як службу Windows або як програму Windows. Запуск як службу дозволяє легко налагоджувати серверні програми, подібні до ASP.NET, без входу на віддалену машину.
Запуск відладчика як сервіс призводить до того, що він завжди запускається та слухає мережу. Не рекомендується використовувати віддалений налагоджувач, запущений як сервіс, для налагодження клієнтських програм.
За допомогою майстра Visual Studio 2015 Remote Debug Configuration ви можете контролювати ім'я користувача та пароль облікового запису, під яким запускається віддалений наладчик. Коли віддалений налагоджувач запущений як служба, такі вимоги повинні бути задоволені для можливості налагодження коду віддалено:
- Користувач повинен бути членом групи Адміністраторів комп'ютера для налагодження будь-якого процесу
- Користувачеві має бути надано право 'Log on as a service', що можна зробити за допомогою утиліти адміністрування 'Local Security Policy'
За замовчуванням: “LocalSystem”.
Ім'я служби: "Visual Studio 2015 Remote Debugger". Рекомендується керувати службою лише за допомогою майстра Visual Studio 2015 Remote Debugger Configuration. У разі потреби також можна скористатися адміністративною утилітою для керування комп'ютером або командним рядком: "net stop msvsmon140" або "net start msvsmon140".Чи можу я налагоджувати код, відмінний від JS, наприклад, .NET або T-SQL?
Так, ви можете налагоджувати будь-який код, налагодження якого підтримує VS 2015: керований код, некерований, GPU, PowerShell, Script, T-SQL, Workflow...
Віддалене налагодження реалізовано за допомогою Windows Web Services API. Windows Web Services API – це будівельний блок за допомогою якого програми, наприклад, віддалений налагоджувач, можуть спілкуватися один з одним через мережу. Цей API вже включений у Windows 7, Windows Server 2008 R2 та пізніші ОС. На Windows Server 2008 (до R2) інсталятор Visual Studio Remote Tools автоматично встановить API.
Чи можу я запустити зупинити віддалений наладчик за допомогою командного рядка? Так, зверніться до довідкових матеріалів за деталями
Чи можу я запустити процес під налагодженням?
Налаштуйте Visual Studio для підключення до віддаленого налагоджувача: