IIS hata ayıklaması yaparken Visual Studio Attach güvenlik uyarısını kapatma


160

Visual Studio 2008 veya 2010 kullanırken, IIS w3wp.exe dosyasına her eklediğinizde bir Güvenlik Uyarısı Ekle uyarısı alırsınız,

Bunu nasıl çeviriyorsun?

Bir süre sonra zaman aşımına uğradığı için, onu oyalanmak için nasıl tutulacağını bilmek güzel olurdu.

Btw: Bunu aşağıdaki cevaba bir yorum olarak ekledim, ilk yaptığım şey http://msdn.microsoft.com/en-us/library/ms241736.aspx msdn makalesini denemekti ama işe yaramıyor.


1
Bu, VS2015'te yakın zamana kadar çalıştı - Kesinlikle tüm VS örneklerini kapattım ve anahtar ayarlandı, ancak uyarı tekrar açılmaya başladı.
fastmultiplication 16:16

Yanıtlar:


231

Ayrıca Tzury tarafından belirtilen makalede bulundu, ancak bu konudaki cevapları özetlemek için:

kayıt defteri anahtarını değiştirirken Visual Studio'nun çalışmadığından emin olun, aksi takdirde eski değerle çıkışta üzerine yazılacaktır

Aşağıdaki kayıt defteri anahtarını 1 olarak değiştirin (veya oluşturun) :

Visual Studio 2008 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2010 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2012 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2013 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\Debugger\DisableAttachSecurityWarning

Visual Studio 2015 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger\DisableAttachSecurityWarning

VS2015 için, yukarıda belirtilen Kayıt Defteri Anahtarını oluşturmanız gerekebilir.

  1. Visual Studio'nun çalışmadığından emin olun ve Kayıt Defteri Düzenleyicisi'ni açın.
  2. Şuraya gidin HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger, sağ tıklayın ve yeni bir tane oluşturun DWORD:
    • Ad: DisableAttachSecurityWarning
    • Değeri: 1.

Güncelleme: Bu tasarruf, regedit açmak istemiyorsanız esasından bir * .reg dosyası olarak ve çalıştırın (tüm VS sürümleri için ithalat tuşları VS2017 daha düşük).

Visual Studio 2017

Yapılandırma özel bir kayıt defteri konumuna kaydedilir, şu yanıta bakın: https://stackoverflow.com/a/41122603/67910

İçin VS 2017 , bu tasarruf esasından a * .ps1 dosyası olarak ve yönetici olarak çalıştırın veya kopyalayıp ps1 dosyasında aşağıdaki kodu yapıştırın:

#IMPORTANT: Must be run as admin

dir $env:LOCALAPPDATA\Microsoft\VisualStudio\15.* | % {
    #https://stackoverflow.com/a/41122603
    New-PSDrive HKU Registry HKEY_USERS

    reg load 'HKU\VS2017PrivateRegistry\' $_\privateregistry.bin

    $BasePath='HKU:\VS2017PrivateRegistry\Software\Microsoft\VisualStudio'

    $keysResult=dir $BasePath
    $keysResult | ? {$_.Name -match '\\\d+\.\d+_[^_]+$'} | % {
        $keyName = $_.Name -replace 'HKEY_USERS','HKU:'
        New-ItemProperty -Path $keyName\Debugger -Name DisableAttachSecurityWarning -Value 1
    }
    $keysResult.Handle.Close()    

    [gc]::collect()

    reg unload 'HKU\VS2017PrivateRegistry'

    Remove-PSDrive HKU
}

10
VS2012 için anahtar HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 11.0 \ Debugger \ DisableAttachSecurityWarning
maddoxej 31:12

17
@ImranRizvi, yine de kayıt defteri değişikliğini yaparken çalışmadığından emin olmanız gerekir, aksi takdirde eski değerle çıkışta üzerine yazılır
Wiebe Tijsma

4
VS 2017 ne olacak? Hata Ayıklayıcı anahtarı hiç eksik (çoğu eksik)
Adaptabi

4
Görünüşe göre Visual Studio 2017 yerel kayıt defteri tutar, bu nedenle genel kayıt defterini değil, bu dosyayı değiştirmeniz gerekir. Yalnızca bu yerel kayıt defteri dosyasını düzenlerken Güvenlik Uyarısı Ekle ile ilgili sorunu çözdüm. Daha fazla açıklama için bu cevabı okuyun: stackoverflow.com/a/41122603/692665
Ceridan

1
@TravisK, temel olarak varsayılan olarak bu anahtara sahip değilsiniz ve bu durum, değeri olan bu anahtarın sıfıra eşit olmasını sağlar. Sizin durumunuzda, Hata Ayıklayıcı bölümüne DisableAttachSecurityWarning ve Value eşittir 1 anahtarıyla el ile yeni DWORD eklemeniz gerekir. İşiniz bittiğinde, özel kayıt defterini kaldırın ve şimdi MSVS'nizi çalıştırabilir ve test edebilirsiniz.
Ceridan

13

Kayıt defteri ayarı çalışır; ancak, 32-bit regedit.exe dosyasını kullanarak %windir%\SysWOW64\veya altına ekleyerek VS2005 / 2008 için 32-bit kayıt defteri sanal alanında ayarladığınızdan emin olmalısınız HKLM\Software\Wow6432Node\.... Her ikisine de ekleyen bir .reg betiği oluşturdum:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\VisualStudio\9.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

Sürümü 2005 için 8.0, 2010 için 10.0 vb. Olarak değiştirmeniz yeterlidir.

NOT: Windows 7'deki regedit, .reg dosyalarının UTF16-LE olarak kaydedilmesini istiyor gibi görünür, bu nedenle bir .reg dosyasına kaydederseniz, bunu yapmanız gerektiğini unutmayın.


8

Windows 7 üzerinde çalışmasını başardım. İlk olarak hala VS2008 ile kayıt defteri değerini değiştirdim. Daha sonra kapattım ve kayıt defteri düzenleyicisini yeniledim ve değerin 0'a sıfırlandığını fark ettim. Sonra tekrar 1 olarak değiştirdim ve VS2008'i başlattım. Şimdi iyi çalışıyor. VS2008'i kapatıp tekrar açmayı denedim ve kayıt defteri değeri 1 kaldı. Yardımınız için teşekkürler


7

Bu yazıdaki diğer cevaplar doğru bilgileri içeriyor, ancak çalışmayı elde etmede sorunlar yaşadım, bu yüzden cevabı çok açık hale getirme girişimi bu. Bu talimatlar, Windows 7 Ultimate 64-Bit üzerinde çalışan Visual Studio 2010 için çalıştı.

  • Visual Studio örneklerinin çalışmadığından emin olun ( devenv.exe dosyasını denetlemek için görev yöneticisini kullanın )
  • HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ XX \ Debugger klasörüne DWORD DisableAttachSecurityWarning kayıt defteri değerini ekleyin ve değeri 1 olarak ayarlayın . Visual Studio 2008 için XX'yi 9.0 ile değiştirin , 2010 için 10.0 kullanın

Bu işe almak için mücadele neden nedeni HKEY_CURRENT_USER yerine HKEY_LOCAL_MACHINE kullanarak bunu deniyordu. Hatamı belirlemek için Process Monitor ve devenv filtreleme biraz başvurmak zorunda kaldı . HKLM değerinin yalnızca Visual Studio'yu ilk kez açmadan önce ayarlanması durumunda herhangi bir etkisi olduğundan şüpheleniyorum.

Visual Studio'nun tüm açık örnekleri, kapatıldıklarında değişikliklerinizin üzerine yazar ve her durumda yalnızca yeni örnekler ayarı alır.

Wow6432Node kayıt defterinin kullanımı , anlayabildiğim kadarıyla gereksiz görünüyor. Aşağıdaki Powershell komutları, Visual Studio 2010 için adımları uygular.

Get-Process -Name devenv* | ForEach-Object { Stop-Process $_.Id }
New-ItemProperty -Path 'HKCU:\Software\Microsoft\VisualStudio\10.0\Debugger' -Name 'DisableAttachSecurityWarning' -Value 1 -PropertyType 'DWORD' -Force

6

Yerel bir makine ise, iis AppPool kimliğini gerçek windows kullanıcısı olarak değiştirebilirsiniz.


1
Geçenlerde cevabınız bana sadece açık yüzünden olduğunu fark ettirdi zaman, daha önce görmemişti bu "özelliği" tarafından ısırıldı gelen apppoolidentity gerçek bir kullanıcı hesabı.
drzaus


4

Bu soruya doğrudan bir cevap değildir, ancak güvenlik mesajını atlar ve daha önce eklenmiş bir sürece eklemek için daha hızlı bir yol sağlar:

  • Reattach uzantısını yükle
  • Reattach kullanarak ekleyin ve mesaj atlanır
  • önceki bir işleme yeniden takılması (Ctrl-R + Ctrl- [1-5]) aynı faydaya sahiptir

3

Powershell varyantı ... $vsversionuygulamak istediğiniz sürümle değiştirin .

Not : Bunu çalıştırmadan önce çalışmanızı kaydedin. Çalışan tüm VS örnekleri durdurulur. Açık VS örneklerini sonlandırmazsanız - değer korunmaz.

$vsversion = "12.0" # VS 2013 (optionally 11, 10, 9, etc.)
kill -name devenv # end any existing VS instances (required for persisting config change)
Get-ItemProperty -Path "HKCU:\Software\Microsoft\VisualStudio\$vsversion\Debugger" -Name DisableAttachSecurityWarning -ErrorAction SilentlyContinue # query value (ignore if not exists)
Set-ItemProperty -Path "HKCU:\Software\Microsoft\VisualStudio\$vsversion\Debugger" -Name DisableAttachSecurityWarning -Value 1 # assign value

2

bu nedenle, x64 / Win7'de Visual Studio 2010 ile benim için çalışacak tek şey, Wow6432Node dahil olmak üzere her iki düğümü de güncelleştirmektir.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\VisualStudio\10.0\Debugger]
"DisableAttachSecurityWarning"=dword:00000001

2

VS2015 ve VS2017 için bir Visual Studio uzantısı mevcuttur: "Her Şeye Ekle" :

resim açıklamasını buraya girin

Her zamanki işlemi kullanarak "IIS'ye Ekle" yi istediğiniz anahtar akoruna bağlayabilirsiniz.


0

SliverNinja ve Martin Hollingsworth'un mevcut cevaplarına dayanan bir powershell varyasyonu. Bu ile test edilmiştir Visual Studio 2015 bir üzerinde win7 / x64 ortamında. Komut dosyası, çalışıyorsa Visual Studio'yu kapatmanızı ister (öldürmeye çalışmaz).

$vsversion = "14.0" # VS 2015 (optionally 12, 11, 10, 9, etc...)
$disable = 1 # set to 0 to enable the warning message

# not using Get-Process here because powershell instance can be 64 bit and devenv is 32 bit
if (!(get-wmiobject win32_process -filter "name='devenv.exe'")) {
    # Create or (force) update the property
    New-ItemProperty -Path "HKCU:\Software\Microsoft\VisualStudio\$vsversion\Debugger" -Name DisableAttachSecurityWarning -Value $disable -PropertyType 'DWORD' -Force
    Write-Host Done!
}
else {
    Write-Error "Please close Visual Studio first!"
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.