Aracılığıyla paylaş


Visual Studio 2022'de geliştirme tünellerini ASP.NET Core uygulamalarıyla kullanma

Visual Studio 2022'nin geliştirme tünelleri özelliği, doğrudan birbirine bağlanabilen makineler arasında geçici bağlantılar sağlar. İnternet bağlantısı olan herhangi bir cihazın localhost üzerinde çalışırken bir ASP.NET Core projesine bağlanmasına olanak tanıyan bir URL oluşturulur.

Kullanım örnekleri

Geliştirme tünellerinin etkinleştirmiş olduğu senaryolardan bazıları:

  • Bir web uygulamasını cep telefonları ve tabletler gibi diğer cihazlarda test edin.
  • Bir uygulamayı dış hizmetlerle test edin. Örneğin, Power Platform bağlayıcılarını, Azure İletişim Hizmetleri API'lerini veya Twilio web kancalarını test edin ve hatalarını ayıklar.
  • Bir uygulamayı İnternet üzerinden, sunu için veya başkalarını web uygulaması veya API'de çalışmanızı gözden geçirmeye davet etmek için geçici olarak kullanılabilir hale getirin.
  • Diğer bağlantı noktası iletme çözümlerine alternatif olarak.

Ön koşullar

  • ASP.NET ve web geliştirme iş yükünün yüklü olduğu Visual Studio 2022 sürüm 17.6 veya üzeri. Geliştirme tünelleri oluşturmak ve kullanmak için Visual Studio'da oturum açmanız gerekir. Özellik, Mac için Visual Studio'da mevcut değildir.
  • Bir veya daha fazla ASP.NET Core projesi. Bu makalede, özelliği göstermek için iki örnek proje içeren bir çözüm kullanılmaktadır.

Tünel oluşturma

Tünel oluşturmak için:

Visual Studio 2022'de bir ASP.NET Core web projesi veya başlangıç projesi olarak ayarlanmış en az bir web projesi olan bir çözüm açın.

Hata ayıklama açılan listesinde Geliştirme Tünelleri>Tünel Oluştur'u seçin.

Debug dropdown showing dev tunnels option with Create tunnel selected

Tünel oluşturma iletişim kutusu açılır.

Dev Tunnel creation dialog.

  • Tüneli oluşturmak için kullanılacak hesabı seçin. Tünel oluşturmak için kullanılabilecek hesap türleri Azure, Microsoft Hesabı (MSA) ve GitHub'dır.
  • Tünel için bir ad girin. Bu ad, Visual Studio kullanıcı arabirimindeki tüneli tanımlar.
  • Kalıcı veya Geçici tünel türünü seçin:
    • Visual Studio her başlatıldığında geçici bir tünel yeni bir URL alır.
    • Kalıcı tünel, Visual Studio her başlatıldığında aynı URL'yi alır. Daha fazla bilgi için bu makalenin devamında yer alan Kalıcı ve geçici tüneller bölümüne bakın.
  • Tünele erişim için gereken kimlik doğrulamasını seçin. Aşağıdaki seçenekler kullanılabilir:
    • Özel: Tünele yalnızca onu oluşturan hesap erişebilir.
    • Kuruluş: Tünele, onu oluşturanla aynı kuruluştaki hesaplar erişebilir. Kişisel bir Microsoft hesabı (MSA) için bu seçenek belirlenirse, etki Özel'i seçmekle aynıdır. Github hesapları için kuruluş desteği desteklenmez.
    • Genel: Kimlik doğrulaması gerekmez. Bu seçeneği yalnızca web uygulamasını veya API'yi İnternet'te herkes için erişilebilir hale getirmek güvenliyse seçin.
  • Tamam'ı seçin.

Visual Studio tünel oluşturma onayı görüntüler:

Notification of successful tunnel creation.

Tünel, hata ayıklama açılan Geliştirici Tünelleri açılır öğesinde görünür:

Debug dropdown Dev Tunnels flyout showing new tunnel.

Etkin tüneli belirtme

Bir proje veya çözüm birden çok tünele sahip olabilir, ancak aynı anda yalnızca bir tünel etkindir. Hata ayıklama açılan menüsündeki Geliştirme Tünelleri açılır öğesi etkin tüneli belirtebilir. Etkin bir tünel olduğunda, Visual Studio'da başlatılan tüm ASP.NET Core projeleri için kullanılır. Bir tünel etkin olarak seçildikten sonra, Visual Studio kapatılana kadar etkin kalır. Aşağıdaki çizimde Geçici Tünelim etkindir:

Debug dropdown showing active tunnel in Dev Tunnels flyout.

Açılır öğede Yok'u seçerek tünel kullanmamayı seçin. Visual Studio yeniden başlatıldığında varsayılan olarak Yok olur.

Tünel kullanma

Bir tünel etkin olduğunda ve Visual Studio bir web uygulaması çalıştırdığında, web tarayıcısı localhost URL'si yerine bir tünel URL'sine açılır. Tünel URL'si aşağıdaki örneğe benzer:

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

Artık kimliği doğrulanmış tüm kullanıcılar İnternet'e bağlı başka bir cihazda aynı URL'yi açabilir. Proje yerel olarak çalışmaya devam ettikçe, İnternet bağlantısı olan tüm cihazlar geliştirme makinesinde çalışan web uygulamasına erişebilir.

Tarayıcı desteği olan web projeleri için, her cihazdan tünel URL'sine gönderilen ilk istekte bir uyarı sayfası gösterilir:

Dev tunnels notification page.

Devam seçildikten sonra istek yerel web uygulamasına yönlendirilir. Geliştirme tünelleri kullanan API istekleri için bu bildirim sayfası gösterilmez.

Telefonda veya tablette test etmek için tünel kullanma

Telefon veya tablet gibi harici bir cihazdan web uygulamasını test etmek için tünel URL'sine gidin. URL'yi dış cihazda yeniden oluşturma işlemini kolaylaştırmak için:

  • Yerel makinedeki bir Edge tarayıcısında tünel URL'sine gidin.
  • Yerel makinedeki Edge tarayıcısında URL'ye bir QR kodu oluşturun:
    • URL çubuğunu seçtiğinizde QR kodu düğmesi görüntülenir.
    • QR kodunu oluşturmak ve görüntülemek için QR kodu düğmesini seçin. QR code with button to create it highlighted.
  • URL'ye gitmek için bu QR kodunu bir telefon veya tabletle tarayın.

Geliştirme Tünelleri çıkış penceresi

Çalışan bir projenin tünelinin URL'sini göstermek için Açılan Listeden çıkışı göster bölümünde Geliştirme Tünelleri'niseçin.

Dev Tunnels output window.

Bu pencere özellikle varsayılan olarak tarayıcı açmayan projeler için kullanışlıdır. Örneğin, bir Azure İşlevi ile çalışırken, geliştirme tüneli tarafından kullanılan genel URL'yi bulmanın en kolay yolu bu olabilir.

Geliştirme Tünelleri araç penceresi

Geliştirme Tünelleri araç penceresinde geliştirme tünellerini görüntüleyin ve yönetin:

Dev Tunnels tool window.

Geliştirme Tünelleri penceresini açmak için hata ayıklama açılan listesinde Geliştirme Tünelleri Penceresini Göster menü seçeneğini belirleyin. Alternatif olarak, Diğer Windows>Geliştirme Tünellerini Görüntüle'yi>seçin.

Geliştirme Tünelleri penceresinde yeşil + düğmeyi seçerek yeni bir tünel oluşturun.

Tünelin sağındaki kırmızı x düğmeyi kullanarak bir tüneli silin.

Bir tünelin bağlam menüsü aşağıdaki seçenekleri sağlar:

  • Etkin Tüneli Temizle: Bir tünel etkin olarak yapılandırıldığında gösterilir (sol taraftaki onay işaretiyle gösterilir), bu işlem çözümün tünel kullanmaması için bunu sıfırlar.
  • Etkin Tünel Yap: Etkin olarak yapılandırılmamış tüneller için gösterilir.
  • Tünel Erişim Belirtecini Kopyala: Özel veya kurumsal erişimle bir tünelin oluşturulduğu ve uygulamanın bir web API'si olduğu senaryolar için sağlanır. Tünelin kimliğini doğrulamak için, tünel erişim belirtecini kopyalayıp istekteki formun X-Tunnel-Authorization tunnel <TOKEN> üst bilgisi olarak yapıştırın. Bu üst bilgi belirtilmezse, kimlik doğrulaması denetimi başarısız olduğundan istek engellenir.
  • Kaldır

Tünel URL'si ortam değişkenleri

Geliştirme tünelleri özelliği, bir projenin tünel URL'sini çalışma zamanında program aracılığıyla almak için bir yol sağlar. Tünel kullanan bir uygulama başlatıldığında, Visual Studio ortam değişkenini VS_TUNNEL_URLoluşturur. VS_TUNNEL_URL Değer, geçerli proje için kullanılan tünelin URL'sidir. VS_TUNNEL_URL , uygulamayı tünel URL'sinin dış hizmete geçirilmesi gereken bir dış hizmetle tümleştirme sırasında yararlı olabilir.

Birden çok ASP.NET Core projesi Visual Studio'da başlatacak şekilde yapılandırıldıysa, başlatılan uygulama ondan önce başlatılan tüm projeler için bir ortam değişkeni alır. Bu değişken adının deseni , VS_TUNNEL_URL_{ProjectName}burada {ProjectName} diğer projenin adıdır. Örneğin, başlamak üzere ayarlanmış iki projenin gösterildiği bu örneği göz önünde bulundurun:

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

MyWebApi MyWebApp'in üzerinde olduğundan, MyWebApp projesinden önce başlatılır. MyWebApi projesi başlatıldığında, ortam değişkeninde tünel URL'sini VS_TUNNEL_URL alır. MyWebApp projesi başlatıldığında kendi tünel URL'sini VS_TUNNEL_URL alır ve diğer projenin tünel URL'si ortam değişkeninde VS_TUNNEL_URL_MyWebApi sağlanır.

Göstermek için, Aşağıdaki vurgulanmış kod satırları MyWebApp'teki Program.cs dosyasına eklenmiştir:

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")}");

Web uygulaması başlatıldığında konsol çıkışı aşağıdaki örneğe benzer:

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

Birden çok başlangıç projesi ayarlama hakkında bilgi için bkz . Nasıl yapılır: Birden çok başlangıç projesi ayarlama.

Kalıcı ve geçici tüneller

Kalıcı tünel, Visual Studio'dan çıkıp yeniden başlattıktan sonra aynı URL'yi kullanan tüneldir. Değişmeyen bir URL'ye sahip olmak, bir web uygulamasını dış hizmetle tümleştirdiğinizde yararlı olabilir. Örneğin, GitHub web kancası uygulama veya Bir Power Platform uygulamasıyla tümleştirmek için API geliştirme. Böyle durumlarda, dış hizmete geri çağırma URL'sini belirtmeniz gerekebilir. Kalıcı bir tünelde dış hizmet URL'sinin yalnızca bir kez yapılandırılması gerekir. Geçici bir tünel kullanıldığında, Visual Studio her yeniden başlatıldığında tünel URL'si yapılandırılmalıdır.

Kalıcı , Visual Studio açık olmadığında tünelin çalıştığı anlamına gelmez. Tünel URL'si yerel makineye yalnızca tünel URL'sinin bağlandığını ASP.NET Core projesi Visual Studio'da çalışıyorsa bağlanır.

Geliştirme tüneli URL'sinin kısa bir süre çalışması gerektiğinde geçici bir tünel iyi olur. Örneğin, bir web uygulamasında devam eden çalışmayı başkalarıyla paylaşma veya bir uygulamayı dış cihazda test etme. Bazı durumlarda, Visual Studio her başlatıldığında yeni bir URL almak en iyi yöntem olabilir.

Ayrıca bkz.

Aşağıdaki kaynaklar geliştirme tünelleri özelliğinin erken önizleme sürümünü kullandığından, bunların bölümleri güncel değil: