Использование туннель разработки в Visual Studio 2022 с приложениями ASP.NET Core

Функция туннель разработки Visual Studio 2022 обеспечивает нерегламентированные подключения между компьютерами, которые не могут напрямую подключаться друг к другу. Создается URL-адрес, позволяющий любому устройству с подключением к Интернету подключаться к проекту ASP.NET Core во время работы в localhost.

Случаи использования

Некоторые сценарии, которые туннель разработки включить:

  • Протестируйте веб-приложение на других устройствах, таких как мобильные телефоны и планшеты.
  • Тестирование приложения с помощью внешних служб. Например, протестируйте и отладите соединители Power Platform, Службы коммуникации Azure API или веб-перехватчики Twilio.
  • Временное доступ к приложению другим пользователям через Интернет для презентации или приглашения других пользователей для просмотра работы с веб-приложением или API.
  • В качестве альтернативы другим решениям переадресации портов.

Необходимые компоненты

  • Visual Studio 2022 версии 17.6 или более поздней версии с установленной рабочей нагрузкой ASP.NET и веб-разработки . Чтобы создать и использовать туннель разработки, необходимо войти в Visual Studio. Эта возможность недоступна в Visual Studio для Mac.
  • Один или несколько проектов ASP.NET Core. В этой статье используется решение с двумя примерами проектов для демонстрации функции.

Создание туннеля

Чтобы создать туннель, выполните следующие действия.

В Visual Studio 2022 откройте веб-проект ASP.NET Core или решение с по крайней мере одним веб-проектом, установленным в качестве запускаемого проекта.

В раскрывающемся списке отладки выберите "Создать туннель dev Tunnels>".

Debug dropdown showing dev tunnels option with Create tunnel selected

Откроется диалоговое окно создания туннеля.

Dev Tunnel creation dialog.

  • Выберите учетную запись, используемую для создания туннеля. Типы учетных записей, которые можно использовать для создания туннелей, включают Azure, учетную запись Майкрософт (MSA) и GitHub.
  • Введите имя туннеля. Это имя определяет туннель в пользовательском интерфейсе Visual Studio.
  • Выберите тип туннеля, постоянный или временный:
    • Временный туннель получает новый URL-адрес при каждом запуске Visual Studio.
    • Постоянный туннель получает один и тот же URL-адрес при каждом запуске Visual Studio. Дополнительные сведения см. в разделе "Постоянные и временные туннели " далее в этой статье.
  • Выберите проверку подлинности, необходимую для доступа к туннелю. Доступны следующие параметры:
    • Частный: туннель доступен только для созданной учетной записи.
    • Организация: туннель доступен для учетных записей в той же организации, что и созданный. Если этот параметр выбран для личной учетной записи Майкрософт (MSA), эффект такой же, как и приватный. Поддержка организации для учетных записей Github не поддерживается.
    • Общедоступная: проверка подлинности не требуется. Выберите этот параметр, только если это безопасно, чтобы веб-приложение или API было доступно всем пользователям в Интернете.
  • Нажмите ОК.

Visual Studio отображает подтверждение создания туннеля:

Notification of successful tunnel creation.

Туннель отображается в всплывающем элементе раскрывающегося списка dev Tunnels для отладки :

Debug dropdown Dev Tunnels flyout showing new tunnel.

Указание активного туннеля

Проект или решение может иметь несколько туннелей, но только один раз активен. Всплывающее меню "Туннели разработки" в раскрывающемся списке отладки может указывать активный туннель. При наличии активного туннеля он используется для всех проектов ASP.NET Core, запущенных в Visual Studio. После выбора туннеля в качестве активного он остается активным, пока Visual Studio не будет закрыт. На следующем рисунке активен мой временный туннель :

Debug dropdown showing active tunnel in Dev Tunnels flyout.

Выберите не использовать туннель, выбрав "Нет " во всплывающем элементе. При перезапуске Visual Studio по умолчанию возвращается значение None.

Использование туннеля

Если туннель активен и Visual Studio запускает веб-приложение, веб-браузер открывает url-адрес туннеля вместо URL-адреса localhost. URL-адрес туннеля выглядит следующим образом:

https://0pbvlk3m-7032.usw2.devtunnels.ms

Теперь любой прошедший проверку подлинности пользователь может открыть тот же URL-адрес на любом другом подключенном к Интернету устройстве. Пока проект продолжает работать локально, любое устройство с подключением к Интернету может получить доступ к веб-приложению, работающему на компьютере разработки.

Для веб-проектов с поддержкой браузера отображается страница предупреждения, отправленная на URL-адрес туннеля с каждого устройства:

Dev tunnels notification page.

После выбора "Продолжить" запрос направляется в локальное веб-приложение. Эта страница уведомлений не отображается для запросов API с помощью туннель разработки.

Использование туннеля для тестирования на телефоне или планшете

Чтобы протестировать веб-приложение с внешнего устройства, например телефона или планшета, перейдите по URL-адресу туннеля. Чтобы упростить воспроизведение URL-адреса на внешнем устройстве, сделайте так:

  • Перейдите по URL-адресу туннеля в браузере Edge на локальном компьютере.
  • Создайте QR-код для URL-адреса в браузере Edge на локальном компьютере:
    • Выберите строку URL-адреса и появится кнопка QR-кода.
    • Нажмите кнопку QR-кода, чтобы создать и просмотреть QR-код. QR code with button to create it highlighted.
  • Проверьте этот QR-код с помощью телефона или планшета, чтобы перейти по URL-адресу.

Окно выходных данных "Туннельы разработки"

Чтобы отобразить URL-адрес туннеля выполняющегося проекта, выберите "Туннели разработки" в раскрывающемся списке "Показать выходные данные ".

Dev Tunnels output window.

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

Окно инструментов Dev Tunnels

Просмотр туннель разработки и управление ими в окне инструментов Dev Tunnels:

Dev Tunnels tool window.

Чтобы открыть окно "Туннельы разработки", в раскрывающемся списке отладки выберите пункт меню "Показать окна "Туннельы разработки". Кроме того, выберите "Просмотреть>другие туннели разработки для Windows".>

В окне "Туннельы разработки" создайте новый туннель, нажав зеленую + кнопку.

Удалите туннель с помощью красной x кнопки справа от туннеля.

Контекстное меню для туннеля предоставляет следующие параметры:

  • Очистить активный туннель: показано, когда туннель настроен как активный (указанный проверка марком слева), он сбрасывает его, чтобы решение не использовало туннель.
  • Сделайте активный туннель: показан для туннелей, которые не настроены как активные.
  • Копировать маркер доступа к туннелям: предоставляется для сценариев создания туннеля с частным или организационным доступом, а приложение — веб-API. Чтобы пройти проверку подлинности для туннеля, скопируйте и вставьте маркер доступа к туннелю в качестве заголовка формы X-Tunnel-Authorization tunnel <TOKEN> в запросе. Если этот заголовок не указан, запрос будет заблокирован из-за сбоя проверки подлинности проверка.
  • Удалить

Переменные среды url-адреса туннеля

Функция туннель разработки предоставляет способ получения URL-адреса туннеля проекта программным способом во время выполнения. При запуске приложения, использующего туннель, Visual Studio создает переменную VS_TUNNEL_URLсреды. Значением VS_TUNNEL_URL является URL-адрес туннеля, который используется для текущего проекта. VS_TUNNEL_URL может быть полезно при интеграции приложения с внешней службой, где URL-адрес туннеля должен передаваться во внешнюю службу.

Если несколько проектов ASP.NET Core настроены для запуска в Visual Studio, приложение, которое запускается, получает переменную среды для любого проекта, запущенного перед ним. Шаблон этого имени переменной — VS_TUNNEL_URL_{ProjectName}это {ProjectName} имя другого проекта. Например, рассмотрим этот пример с двумя проектами, установленными для запуска:

Startup projects selection page showing MyWebApi and MyWebApp both starting, in that order.

Так как MyWebApi выше MyWebApp, он запускается перед проектом MyWebApp. При запуске проекта MyWebApi он получает URL-адрес туннеля в переменной VS_TUNNEL_URL среды. При запуске проекта MyWebApp он получает собственный URL-адрес туннеля и URL-адрес VS_TUNNEL_URL туннеля другого проекта предоставляется в переменной VS_TUNNEL_URL_MyWebApi среды.

Чтобы проиллюстрировать, в файл Program.cs в MyWebApp добавлены следующие выделенные строки кода:

public class Program
{
    public static void Main(string[] args)
    {
        Console.WriteLine($"Tunnel URL: {Environment.
            GetEnvironmentVariable("VS_TUNNEL_URL")}");
        Console.WriteLine($"API project tunnel URL: {Environment.
            GetEnvironmentVariable("VS_TUNNEL_URL_MyWebApi")}");

При запуске веб-приложения выходные данные консоли выглядят следующим образом:

Tunnel URL: https://lxm0ltdt-7175.usw2.devtunnels.ms/
API project tunnel URL: https://lxm0ltdt-7042.usw2.devtunnels.ms/
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: https://localhost:7175
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://localhost:5228
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
      Content root path: C:\DevTunnelsDemo\MyWebApp

Сведения о настройке нескольких проектов запуска см. в статье "Практическое руководство. Настройка нескольких проектов запуска".

Постоянные и временные туннели

Постоянный туннель — это тот же URL-адрес после выхода и перезапуска Visual Studio. Наличие URL-адреса, который не изменяет, может быть полезным при интеграции веб-приложения с внешней службой. Например, реализация веб-перехватчика GitHub или разработка API для интеграции с приложением Power Platform. В таких случаях может потребоваться указать URL-адрес обратного вызова внешней службе. При использовании постоянного туннеля URL-адрес внешней службы необходимо настроить только один раз. При использовании временного туннеля URL-адрес туннеля необходимо настроить при каждом перезапуске Visual Studio.

Постоянный не означает, что туннель работает, если Visual Studio не открыт. URL-адрес туннеля подключается к локальному компьютеру, только если проект ASP.NET Core, к которому подключается URL-адрес туннеля, выполняется в Visual Studio.

Временный туннель хорошо подходит, если URL-адрес туннеля разработки должен работать в течение короткого времени. Например, совместное использование веб-приложения с другими пользователями или тестирование приложения на внешнем устройстве. В некоторых случаях рекомендуется получить новый URL-адрес при каждом запуске Visual Studio.

См. также

Следующие ресурсы используют раннюю предварительную версию функции туннель разработки, поэтому части из них устарели: