Visual Studio'da ara sunucu ve güvenlik duvarı sorunlarını giderme

Visual Studio'yu bir şirket ara sunucusunun veya güvenlik duvarının arkasında kullandığınızda NuGet paketi geri yükleme, uzantı yükleme ve yapay zeka destekli özellikler gibi ağ erişimi gerektiren özellikleri etkileyen bağlantı sorunlarıyla karşılaşabilirsiniz. Ara sunucu sorunları genellikle iki kategoriye ayrılır:

  • Yapılandırma sorunları: Ara sunucu kurulumunuz, sertifikalarınız veya ağ yapılandırmanızla ilgili sorunlar. Bu sorunlar BT yöneticiniz tarafından giderilir.
  • Gerekli ayarlar: Visual Studio, ağ yapılandırmanız hakkında ek bilgi gerektirir. Visual Studio'ya gerekli ayarları sağlama hakkında daha fazla bilgiyi bu makalede bulabilirsiniz.
  • Ürün sorunları: Sorununuzun bir yapılandırma sorunu olmadığını belirlediyseniz veya sağlanan ayarlar gördüğünüz sorunu gidermiyorsa, bu bir ürün sorunu olabilir. Bilet göndermeden önce Tanılama bilgilerini toplama başlığındaki adımları izleyin.

Bu makale, sorununuzun hangi kategoriye dahil olduğunu belirlemenize yardımcı olur ve yaygın sorunlara yönelik çözümler sağlar.

Önkoşullar

Ara sunucu sorunlarını gidermeden önce aşağıdakilere sahip olduğunuzdan emin olun:

Bilinen sorunlar ve çözümleri

Aşağıdaki bölümlerde ara sunucuyla ilgili yaygın sorunlar ve bunların çözümleri açıklanmaktadır.

SSL bağlantı hataları (sertifika yetkilisi güvenilir değil)

Belirti: System.Net.Http.HttpRequestException: The SSL connection could not be established ile IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host gibi bir iç özel durum hatası görürsünüz.

Kategori: Yapılandırma sorunu

Çözüm: Proxy sunucunuz yüklü ve güvenilir olması gereken bir sertifika yetkilisi (CA) kullanıyor. Aşağıdaki adımların ikisini de tamamlayın:

  1. Proxy ile ilgili tüm sertifikaları (kök ve ara) Windows Güvenilen Kök Sertifika Yetkilileri deposuna yükleyin. Daha fazla bilgi için Güvenilen Kök Sertifika Yetkilileri Sertifika Deposu'na bkz.
  2. Ortam değişkenini NODE_EXTRA_CA_CERTS CA sertifika dosyasının yoluna ayarlayın. Bu adım, Node.js işlemleri kullanan özellikler için gereklidir.

Uyarı

Bu hata, bir güvenlik duvarı ara sunucu sorunu yerine bağlantıyı engelliyorsa da oluşabilir.

Saydam proxy hataları

Belirti: Saydam ara sunucu kullanılırken çeşitli hata iletileriyle ağ çağrıları başarısız olur.

Kategori: Yapılandırma sorunu

Çözüm: Saydam proxy'ler, açık yapılandırma olmadan trafiği kestiğinden çok çeşitli sorunlara neden olabilir. Ara sunucu, belirli işlemler ve uygulamalar için izin ver veya engelle listelerini kullanıyor olabilir. Aşağıdakiler için ağ yöneticinizle birlikte çalışın:

  • Ara sunucu aracılığıyla Visual Studio işlemlerine izin verildiğini doğrulayın
  • Belirli uç noktaların engellenip engellenmediğini denetleyin
  • SSL inceleme ayarlarını gözden geçirme

Copilot Sohbet çalışmadığı halde Copilot Kimlik Doğrulaması çalışır

Belirti: GitHub'da oturum açabilirsiniz ve Copilot kimliğinizin doğrulanmış olduğunu gösterir ancak Copilot sohbeti kullanıldığında hata oluşur.

Kategori: Yapılandırma sorunu

Çözüm: Bu belirtiler Visual Studio'nun kendi .NET isteklerinin başarısız olduğu ancak .NET Framework isteklerinin çalıştığı anlamına gelir. Belirli uç noktaları engelleyen proxy'ler veya genel IPv6 trafiğinin engellenmesi gibi birçok olası neden vardır. IPv6 trafiğinin ara sunucunuz veya güvenlik duvarınız tarafından engellenmediğini denetleyin. Şu çözümlerden birini deneyin:

  • Tercih edilen: Proxy'nizi IPv6 trafiğine izin verecek şekilde yapılandırın.
  • Alternatif: Ortam değişkenini DOTNET_SYSTEM_NET_DISABLEIPV6 IPv4'e zorlamak için 1 olarak ayarlayın.
  • İşlem izin listeleri kullanılıyorsa: Güvenlik duvarınıza veya ara sunucu izin verme listenize ekleyin DevHub.exe .
  • Tercih edilen: Proxy'nizi IPv6 trafiğine izin verecek şekilde yapılandırın.
  • Alternatif: Ortam değişkenini DOTNET_SYSTEM_NET_DISABLEIPV6 IPv4'e zorlamak için 1 olarak ayarlayın.
  • İşlem izin listeleri kullanılıyorsa: Güvenlik duvarınıza veya ara sunucu izin verme listenize ekleyin ServiceHub.Host.dotnet.x64.exe .

Kısmi sertifika zinciri hataları

Belirti: Yığın izleri gösteriyor The remote certificate is invalid because of errors in the certificate chain: PartialChain.

Kategori: Yapılandırma sorunu

Çözüm: Sertifika zincirinde bir veya daha fazla ara sertifika eksik. Eksik sertifikaları tanımlama adımları için bkz. Kısmi sertifika zinciri sorunlarını tanılama , ardından bunları yüklemek için BT yöneticinizle birlikte çalışma.

Proxy kimlik doğrulaması gerekiyor (Temel kimlik doğrulaması ile 407 hatası)

Belirti: Temel kimlik doğrulamalı bir ara sunucu kullanırken yığın izlemeleri (407) Proxy Authentication Required gösterir.

Kategori: Gerekli ayarlar

Çözüm: Visual Studio, temel kimlik doğrulamasıyla kimlik doğrulama proxy'si arkasında GitHub ve Microsoft Entra hesaplarında oturum açmayı destekler, ancak Visual Studio'nun çoğu sürümünde temel kimlik doğrulamasıyla kimlik doğrulama proxy'si arkasında Copilot desteği yoktur.

Başlangıçta, kimlik bilgilerini yakalamak için bir istem görüntülenir. Kimlik bilgileri, Windows Kimlik Yöneticisi altındaki Windows Kimlik Bilgileri'nde Internet veya ağ adresi olarak, ardından proxy'nin gerektirdiği kullanıcı adı ve parola olarak saklanır.

Başlangıçta, kimlik bilgilerini yakalamak için bir istem görüntülenir. Kimlik bilgileri, Windows Kimlik Yöneticisi altındaki Windows Kimlik Bilgileri'nde Internet veya ağ adresi olarak, ardından proxy'nin gerektirdiği kullanıcı adı ve parola olarak saklanır.

Proxy kimlik bilgilerini doğrudan Visual Studio'da da yapılandırabilirsiniz. Bkz . Visual Studio'da ara sunucu ayarlarını yapılandırma.

Proxy kimlik doğrulaması gerekiyor (NTLM veya Kerberos)

Belirti: NTLM veya Kerberos kimlik doğrulaması ile ara sunucu kullanılırken ağa bağımlı özellikler çalışmaz.

Kategori: Gerekli ayarlar

Çözüm: Visual Studio'yu varsayılan proxy kimlik bilgilerini kullanacak şekilde yapılandırın:

  1. Araçlar>Seçenekleri>Ara Sunucu Ayarları'na gidin.
  2. Geçerli Windows kimlik bilgilerinizi kullanmak için Oturum açmış Windows hesabını kullan'ı seçin.
  3. Değişikliklerin etkili olması için Visual Studio'yu yeniden başlatın.

Daha fazla bilgi için bkz. Visual Studio'da ara sunucu ayarlarını yapılandırma.

Ortam değişkenini VS_USE_DEFAULTPROXY olarak trueayarlayın. Copilot için COPILOT_USE_DEFAULTPROXY değerini true olarak ayarlayın.

Uyarı

Bu geçici çözümü daha sonra devre dışı bırakmak için ortam değişkenini tamamen silin. Bunu false olarak ayarlamak özelliği devre dışı bırakmaz.

Açık proxy yapılandırması gereklidir

Belirti: Ara sunucunuz kimlik doğrulaması gerektirmese bile ağa bağımlı özellikler çalışmaz.

Kategori: Gerekli ayarlar

Çözüm: Ara sunucu adresini açıkça yapılandırın:

  1. Araçlar>Seçenekleri>Ara Sunucu Ayarları'na gidin.
  2. Özel ara sunucu ayarlarını kullan'ı seçin.
  3. Proxy sunucu bağlantı noktası ve URL'sini girin.
  4. Değişikliklerin etkili olması için Visual Studio'yu yeniden başlatın.

Daha fazla bilgi için bkz. Visual Studio'da ara sunucu ayarlarını yapılandırma.

HTTPS_PROXY ve HTTP_PROXY ortam değişkenlerini proxy sunucu adresiniz olarak ayarlayın. Copilot,Visual Studio için bunların ayarlanmasını istiyor.

Ayrıntılı ara sunucu yapılandırma adımları için bkz. Visual Studio'da ara sunucu ayarlarını yapılandırma.

SSL sertifikası sorunlarını giderme

SSL sertifikası hataları genellikle proxy sunucunuz SSL denetimi gerçekleştirdiğinde ve gerekli sertifikalar düzgün yüklenmediğinde veya güvenilir olmadığında oluşur. Kök nedeni tanılamak için aşağıdaki adımları kullanın.

Tanılama sorularını yanıtlama

Sorunu daraltmak için şu soruları inceleyin:

  1. Sertifikalara güveniliyor mu? Proxy'nin CA sertifikasının geçerli kullanıcının sertifika deposunda mı yoksa yerel makine deposunda mı yüklü olduğunu denetleyin.
  2. Visual Studio farklı bir kullanıcı olarak mı çalışıyor? Visual Studio, Windows'ta oturum açmış kullanıcıdan farklı bir kullanıcı olarak çalışıyorsa, mevcut kullanıcının mağazasındaki sertifikalara erişimi olmayabilir.
  3. Çevrimiçi hizmetlerde kimliğiniz doğrulandı mı? Visual Studio'da Microsoft veya GitHub hesabınızda oturum açıp açabildiğinizi denetleyin.
  4. Özellik daha önce çalıştı mı? Özellik daha önce çalıştıysa ve çalışmayı durdurduysa, büyük olasılıkla bir yukarı akış ağ yapılandırması değişikliği oluştu. Bu bir Visual Studio ürün sorunu değildir.
  5. Diğer ağ kaynaklarına erişebilir misiniz? Web'e göz atabiliyorsanız ancak Visual Studio özellikleri başarısız oluyorsa, sorun özellikle Visual Studio'nun ağ bağlantılarıyla ilgilidir.

Sorunu belirtilere göre tanımlama

Sorununuzu tanımlamak için şu desenleri kullanın:

  • Kullanıcı deposundaki sertifikalar, farklı kullanıcı olarak çalışan VS: Visual Studio sertifikalara erişemeyebilir. Bunun yerine yerel makine deposuna sertifika yükleyin.
  • Bazı özellikler çalışır ancak diğerleri başarısız olur: Bu genellikle bir IPv6 sorununu veya .NET Framework ile .NET Core ağı arasındaki farkı gösterir. Bkz . Copilot Sohbeti çalışmazken Copilot Kimlik Doğrulaması çalışır.
  • Dün çalıştı, bugün bozuldu: Yukarı akış ağ yapılandırma değişikliği oluştu. Nelerin değiştiğini belirlemek için BT yöneticinize başvurun.

Kısmi sertifika zinciri sorunlarını tanılama

Hatalar görürseniz PartialChain , eksik sertifikaları belirlemek için aşağıdaki adımları kullanın. Bu adımlar OpenSSL komut satırı aracını gerektirir.

  1. Sertifika zincirini görüntülemek için aşağıdaki komutu çalıştırın; PROXY_HOST:PORT değerini proxy adresinizle ve target.host.com değerini ulaşmaya çalıştığınız uç noktayla değiştirin:

    openssl s_client -proxy PROXY_HOST:PORT -connect target.host.com:443 -showcerts -verify 5 </dev/null
    
  2. Çıktıdaki her sertifika için zinciri denetlemek için aşağıdaki komutu çalıştırın (her sertifikayı cert1.pem, cert2.pem ve vb. gibi bir dosyaya kaydettikten sonra):

    openssl x509 -in cert1.pem -noout -subject -issuer -ski -aki
    
  3. Aşağıdakileri denetleyerek sertifika zincirini doğrulayın:

    • N sertifikasının Yetkili Anahtar Tanımlayıcısı (AKI), N+1 sertifikasının Konu Anahtarı Tanımlayıcısı (SKI) ile eşleşmelidir.
    • Sertifika N'nin Veren DN'sinin , N+1 sertifikasının Konu DN'sine uyması gerekir.

Zincirde bir kesme bulursanız, eksik ara sertifikaları almak ve yüklemek için BT yöneticinize başvurun.

Uyarı

Web tarayıcıları başarılı olsa bile, bir sertifikanın AKI'sı zincirdeki bir sonraki sertifikanın SKI'sine uymuyorsa.NET istekleri reddeder. Bu, çoğu tarayıcının gerçekleştirdiği doğrulamadan daha katı bir doğrulamadır.

Ürün sorunları: Destek için tanılama bilgilerini toplama

Visual Studio'da gerekli ayarları sağladıktan sonra sorununuzun yapılandırma sorunu olmadığını belirlediyseniz lütfen bir geri bildirim bileti oluşturun. Bkz. Visual Studio ile ilgili bir sorunu bildirme. Ara sunucu sorunları için geri bildirim bileti oluştururken araştırmamıza yardımcı olması için aşağıdaki bilgileri ekleyin. Ne kadar fazla ayrıntı sağlarsanız sorunun ürün hatası mı yoksa yapılandırma sorunu mu olduğunu o kadar hızlı belirleyebiliriz.

Kimlik doğrulama durumunu denetleme

Aşağıdaki kimlik doğrulama durumlarını doğrulayın:

  1. GitHub kimlik doğrulaması:

    • Windows>Kimlik Bilgileri Yöneticisi>Windows Kimlik Bilgileri'ni açın.
    • Ön ekli git: kimlik bilgilerini arayın.
    • GitHub hesabı meta verilerini denetleyin %LocalAppData%/.IdentityService/GitHubV3AccountStore.json .
  2. Özellik durumu: Hangi özelliklerin çalıştığını ve hangilerinin başarısız olduğunu not edin (örneğin, NuGet geri yükleme, uzantı yükleme, yapay zeka özellikleri).

Günlükleri ve yapılandırma ayrıntılarını topla

Aşağıdaki bilgileri toplayın:

  1. Visual Studio günlükleri: zip dosyası %temp%/Vslogsoluşturun.

  2. Ağ izleme: Mümkünse, başarısız istekleri gösteren bir Fiddler izlemesi toplayın.

  3. Ara sunucu yapılandırma ayrıntıları:

    • Bu açık veya saydam bir ara sunucu mu?
    • Ara sunucu kimlik doğrulaması gerektiriyor mu? Öyleyse, ne tür (Temel, NTLM, Kerberos)?
    • Ara sunucu belirli uygulamaları engelliyor mu yoksa izin mi sağlıyor?
    • Gerekli sertifikalar yüklü ve güvenilir mi? Sertifika iptal edilmiş veya süresi dolmuş mu?
    • Güvenlik duvarı da yapılandırıldı mı?
    • SSL denetimi etkinleştirildi mi?
    • IPv6 trafiği ara sunucu üzerinden yönlendiriliyor mu?
  4. Diğer araçlarla karşılaştırma: Visual Studio Code veya diğer uygulamalar bu ara sunucu üzerinden çalışıyor mu?