Deaktivieren Sie Visual Studio Attach-Sicherheitswarnung beim Debuggen von IIS


160

Wenn Sie Visual Studio 2008 oder 2010 verwenden, erhalten Sie jedes Mal, wenn Sie eine Verbindung zu IIS w3wp.exe herstellen, eine Sicherheitswarnung zum Anhängen.

Wie machst du das ab?

Es wäre cool zu wissen, wie man es zum Verweilen anhält, da dies nach einer Weile eine Auszeit zu sein scheint.

Übrigens: Ich habe dies als Kommentar zu der Antwort unten hinzugefügt. Als erstes habe ich den MSDN-Artikel http://msdn.microsoft.com/en-us/library/ms241736.aspx ausprobiert, aber das funktioniert nicht.


1
Dies funktionierte bis vor kurzem in VS2015 - ich habe definitiv alle VS-Instanzen geschlossen und der Schlüssel ist gesetzt, aber die Warnung wurde erneut angezeigt.
Fastmultiplication

Antworten:


231

Auch in dem von Tzury erwähnten Artikel zu finden, aber um die Antworten in diesem Thread zusammenzufassen:

Stellen Sie sicher, dass Visual Studio beim Ändern des Registrierungsschlüssels nicht ausgeführt wird. Andernfalls wird es beim Beenden mit dem alten Wert überschrieben

Ändern (oder erstellen) Sie den folgenden Registrierungsschlüssel in 1 :

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

Für VS2015 müssen Sie möglicherweise den oben genannten Registrierungsschlüssel erstellen.

  1. Stellen Sie sicher, dass Visual Studio nicht ausgeführt wird, und öffnen Sie den Registrierungseditor.
  2. Navigieren Sie zu HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger, klicken Sie mit der rechten Maustaste und erstellen Sie eine neue DWORD:
    • Name: DisableAttachSecurityWarning
    • Wert : 1.

Update: Wenn Sie regedit nicht öffnen möchten, speichern Sie dieses Gist als * .reg-Datei und führen Sie es aus (importiert die Schlüssel für alle VS-Versionen unter VS2017).

Visual Studio 2017

Die Konfiguration wird an einem privaten Registrierungsspeicherort gespeichert. Siehe folgende Antwort: https://stackoverflow.com/a/41122603/67910

Speichern Sie diesen Inhalt für VS 2017 als * .ps1-Datei und führen Sie ihn als Administrator aus, oder kopieren Sie den folgenden Code und fügen Sie ihn in eine ps1-Datei ein:

#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
Für VS2012 lautet der Schlüssel HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 11.0 \ Debugger \ DisableAttachSecurityWarning
maddoxej

17
@ ImranRizvi Sie müssen sicherstellen, dass es nicht ausgeführt wird, während die Registrierung geändert wird, sonst wird es nur beim Beenden mit dem alten Wert überschrieben
Wiebe Tijsma

4
Was ist mit VS 2017? Der Debugger-Schlüssel fehlt überhaupt (die meisten fehlen)
Adaptabi

4
Anscheinend behält Visual Studio 2017 die lokale Registrierung bei, daher müssen Sie diese Datei und nicht die globale Registrierung ändern. Ich habe ein Problem mit der Sicherheitswarnung "Anhängen" behoben, bei dem nur diese lokale Registrierungsdatei bearbeitet wurde. Lesen Sie diese Antwort für weitere Erklärungen: stackoverflow.com/a/41122603/692665
Ceridan

1
@TravisK, im Grunde haben Sie diesen Schlüssel nicht standardmäßig und diese Situation entspricht diesem Schlüssel mit einem Wert gleich Null. In Ihrem Fall sollten Sie dem Abschnitt Debugger manuell ein neues DWORD mit dem Schlüssel DisableAttachSecurityWarning und Value gleich 1 hinzufügen. Wenn Sie fertig sind, entladen Sie einfach die private Registrierung und jetzt können Sie Ihr MSVS ausführen und testen.
Ceridan

13

Die Registrierungseinstellung funktioniert. Sie müssen jedoch sicherstellen, dass Sie es in der 32-Bit-Registrierungssandbox für VS2005 / 2008 festlegen, indem Sie entweder die 32-Bit-Datei regedit.exe in verwenden %windir%\SysWOW64\oder es unter hinzufügen HKLM\Software\Wow6432Node\.... Ich habe ein .reg-Skript erstellt, das es einfach zu beiden hinzufügt:

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

Ändern Sie einfach die Version auf 8.0 für 2005, 10.0 für 2010 usw.

HINWEIS: regedit unter Windows 7 möchte anscheinend, dass .reg-Dateien als UTF16-LE gespeichert werden. Wenn Sie sie also in einer .reg-Datei speichern, müssen Sie dies tun.


8

Ich konnte es unter Windows 7 zum Laufen bringen. Ich habe zuerst den Registrierungswert geändert, während VS2008 noch geöffnet war. Ich habe es dann geschlossen und den Registrierungseditor aktualisiert und festgestellt, dass der Wert auf 0 zurückgesetzt wurde. Dann habe ich ihn wieder auf 1 geändert und VS2008 gestartet. Es funktioniert jetzt gut. Ich habe versucht, VS2008 zu schließen und wieder zu öffnen, und der Registrierungswert bleibt 1. Vielen Dank für Ihre Hilfe


7

Die anderen Antworten in diesem Beitrag enthalten die richtigen Informationen, aber ich hatte Probleme, sie zum Laufen zu bringen. Dies ist ein Versuch, die Antwort sehr deutlich zu machen. Diese Anweisungen funktionierten für Visual Studio 2010 unter Windows 7 Ultimate 64-Bit.

  • Stellen Sie sicher, dass keine Instanzen von Visual Studio ausgeführt werden (Verwenden Sie den Task-Manager, um nach devenv.exe zu suchen. )
  • Fügen Sie den Registrierungswert DWORD DisableAttachSecurityWarning zu HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ XX \ Debugger hinzu und setzen Sie den Wert auf 1 . Für Visual Studio 2008 ersetzen Sie XX durch 9.0 , für 2010 verwenden Sie 10.0

Der Grund, warum ich mich bemühte, dies zum Laufen zu bringen, war, dass ich dies mit HKEY_LOCAL_MACHINE anstelle von HKEY_CURRENT_USER versuchte. Ich musste auf Process Monitor zurückgreifen und ein bisschen nach Devenv filtern, um meinen Fehler zu identifizieren. Ich vermute, dass der HKLM-Wert nur dann Auswirkungen hat, wenn er festgelegt wird, bevor Sie Visual Studio zum ersten Mal öffnen.

Alle geöffneten Instanzen von Visual Studio überschreiben Ihre Änderungen, wenn sie geschlossen werden, und nur neue Instanzen übernehmen die Einstellung in jedem Fall.

Die Verwendung der Wow6432Node- Registrierung scheint meines Erachtens unnötig zu sein. Mit den folgenden Powershell-Befehlen werden die Schritte für Visual Studio 2010 angewendet.

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

Sie können die iis AppPool-Identität in Ihren tatsächlichen Windows-Benutzer ändern, wenn es sich um einen lokalen Computer handelt.


1
Ich wurde kürzlich von dieser "Funktion" gebissen, die ich vorher noch nicht gesehen hatte, als Ihre Antwort mir klar machte, dass ich gerade von einem tatsächlichen Benutzerkonto zur Apppoolidentität gewechselt bin.
Drzaus

4

Ihre Antwort finden Sie unter http://msdn.microsoft.com/en-us/library/ms241736.aspx

Wenn Sie ein legitimes Szenario debuggen, das dazu führt, dass diese Warnung angezeigt wird, und sie unterdrücken möchten, gibt es eine Registrierungseinstellung, mit der Sie dies tun können. Denken Sie daran, die Warnung wieder zu aktivieren, nachdem Sie mit dem Szenario fertig sind.


4

Dies ist keine direkte Antwort auf die Frage, umgeht jedoch die Sicherheitsnachricht und bietet auch eine schnellere Möglichkeit, eine Verbindung zu einem zuvor angehängten Prozess herzustellen:

  • Installieren Sie die Reattach-Erweiterung
  • Mit Reattach anhängen und die Nachricht wird umgangen
  • Das erneute Anhängen (Strg-R + Strg- [1-5]) an einen vorherigen Prozess hat den gleichen Vorteil

3

Powershell- Variante ... durch $vsversiondie Version ersetzen, auf die Sie sie anwenden möchten.

Hinweis : Speichern Sie Ihre Arbeit, bevor Sie diese ausführen. Alle laufenden VS-Instanzen werden gestoppt. Wenn Sie offene VS-Instanzen nicht beenden, wird der Wert nicht beibehalten.

$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

Das einzige, was für mich mit Visual Studio 2010 unter x64 / Win7 funktionieren würde, ist die Aktualisierung beider Knoten, einschließlich des Wow6432Node.

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

Für VS2015 und VS2017 ist eine Visual Studio-Erweiterung verfügbar: "An alle Dinge anhängen " :

Geben Sie hier die Bildbeschreibung ein

Sie können "An IIS anhängen" mit dem üblichen Verfahren an einen beliebigen Tastenakkord binden.


0

Eine Powershell- Variante, die auf vorhandenen Antworten von SliverNinja und Martin Hollingsworth basiert. Dies wurde mit Visual Studio 2015 in einer Win7 / x64- Umgebung getestet . Das Skript fordert Sie auf, Visual Studio zu schließen, wenn es ausgeführt wird (es wird nicht versucht, es zu beenden).

$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!"
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.