IIS를 디버깅 할 때 Visual Studio Attach 보안 경고 해제


160

Visual Studio 2008 또는 2010을 사용할 때 IIS w3wp.exe에 연결할 때마다 보안 연결 경고가 표시됩니다.

이것을 어떻게 돌리나요?

시간이 지나면 시간이 초과되는 것처럼 보이기 때문에 연결 상태를 유지하는 방법도 아는 것이 좋습니다.

Btw : 나는 아래 답변에 주석으로 이것을 추가했다. 내가 한 첫 번째 일은 msdn 기사 http://msdn.microsoft.com/en-us/library/ms241736.aspx를 시도 했지만 작동하지 않는다.


1
이것은 VS2015에서 최근까지 작동했습니다. 모든 VS 인스턴스를 확실히 닫았으며 키가 설정되었지만 경고가 다시 나타납니다.
빠른 곱셈

답변:


231

Tzury가 언급 한 기사에서도 발견되었지만이 스레드의 답변을 요약하면 다음과 같습니다.

레지스트리 키를 변경할 때 Visual Studio가 실행되고 있지 않은지 또는 종료시 이전 값으로 덮어 쓰여집니다.

다음 레지스트리 키를 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

비주얼 스튜디오 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의 경우 위에서 참조한 레지스트리 키를 만들어야 할 수도 있습니다.

  1. Visual Studio가 실행되고 있지 않은지 확인하고 레지스트리 편집기를 엽니 다.
  2. 으로 이동하여 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger마우스 오른쪽 버튼을 클릭하고 새를 만듭니다 DWORD.
    • 이름: DisableAttachSecurityWarning
    • 값 : 1.

업데이트 : regedit를 열지 않으려면이 요지 를 * .reg 파일로 저장하고 실행하십시오 (VS2017보다 낮은 모든 VS 버전의 키를 가져옵니다).

Visual Studio 2017

구성은 개인 레지스트리 위치에 저장됩니다. https://stackoverflow.com/a/41122603/67910

들어 VS 2017 이 저장 골자 는 *이 .ps1 파일로와 것은 관리자로 실행하거나 복사하여 PS1 파일에 다음 코드를 붙여 넣습니다 :

#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의 경우 키는 HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 11.0 \ Debugger \ DisableAttachSecurityWarning
maddoxej

17
@ImranRizvi 당신은 어쨌든 레지스트리를 변경하는 동안 실행되고 있지 않은지 확인해야합니다, 그렇지 않으면 이전 값으로
종료시

4
VS 2017은 어떻습니까? 디버거 키가 전혀 없습니다 (대부분 누락)
Adaptabi

4
Visual Studio 2017이 로컬 레지스트리를 유지하는 것처럼 보이므로 전역 레지스트리가 아닌이 파일을 변경해야합니다. 이 로컬 레지스트리 파일을 편집하는 동안 첨부 보안 경고 문제가 해결되었습니다. 자세한 내용은이 답변을 읽으십시오. stackoverflow.com/a/41122603/692665
Ceridan

1
@TravisK, 기본적으로 기본적 으로이 키가 없으며이 상황은이 키가 값이 0 인 것과 같습니다. 귀하의 경우 디버거 섹션에 DisableAttachSecurityWarning 키와 값이 1 인 새 DWORD를 수동으로 추가해야합니다. 완료되면 개인 레지스트리를 언로드하면 MSVS를 실행하고 테스트 할 수 있습니다.
Ceridan

13

레지스트리 설정이 작동합니다. 그러나 32 비트 regedit.exe를 사용 %windir%\SysWOW64\하거나에 추가 하여 VS2005 / 2008의 32 비트 레지스트리 샌드 박스에 설정해야합니다 HKLM\Software\Wow6432Node\.... 간단히 두 스크립트를 모두 추가하는 .reg 스크립트를 만들었습니다.

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

2005의 경우 8.0, 2010의 경우 10.0 등으로 변경하십시오.

참고 : Windows 7의 regedit는 .reg 파일을 UTF16-LE로 저장하려고하므로 .reg 파일로 저장하는 경우이를 수행해야합니다.


8

Windows 7에서 작동시킬 수있었습니다. VS2008을 열어 둔 상태에서 레지스트리 값을 변경했습니다. 그런 다음 레지스트리 편집기를 닫고 새로 고치고 값이 0으로 다시 설정되었음을 알았습니다. 그런 다음 다시 1로 변경하고 VS2008을 시작했습니다. 이제 잘 작동합니다. VS2008을 닫고 다시 열려고 레지스트리 값이 1로 유지되었습니다. 도움을 주셔서 감사합니다.


7

이 게시물의 다른 답변에는 올바른 정보가 포함되어 있지만 작동하는 데 문제가 있으므로 답변을 매우 명시 적으로 작성하려는 시도입니다. 이 지침은 Windows 7 Ultimate 64-Bit에서 실행되는 Visual Studio 2010에서 작동했습니다.

  • Visual Studio 인스턴스가 실행되고 있지 않은지 확인하십시오 (작업 관리자를 사용하여 devenv.exe 확인 ).
  • DWORD DisableAttachSecurityWarning 레지스트리 값을 HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ XX \ Debugger에 추가 하고 값을 1로 설정하십시오 . Visual Studio 2008의 경우 XX를 9.0으로 바꾸고 2010의 경우 10.0을 사용하십시오.

이 작업을 수행하는 데 어려움을 겪었던 이유는 HKEY_CURRENT_USER 대신 HKEY_LOCAL_MACHINE을 사용하여 시도했기 때문입니다. 내가 사용에 의존했다 프로세스 모니터 및 내 실수를 식별 할 devenv를 필터링의 약간. Visual Studio를 처음 열기 전에 HKLM 값이 설정되면 영향을 미칩니다.

열려있는 Visual Studio 인스턴스는 변경 사항을 닫을 때 변경 사항을 덮어 쓰며 새 인스턴스 만 설정을 선택합니다.

내가 알 수 있는 한 Wow6432Node 레지스트리를 사용 하는 것이 필요하지 않은 것 같습니다. 다음 Powershell 명령은 Visual Studio 2010 단계를 적용합니다.

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

로컬 시스템 인 경우 iis AppPool ID를 실제 Windows 사용자로 변경할 수 있습니다.


1
나는 최근에 당신의 대답은 나를 그냥 전환 때문에 그것의 실현했을 때 내가, 전에 볼 수없는 것이 "기능"에 의해 물린 에서 apppoolidentity에 실제 사용자 계정.
drzaus


4

이것은 질문에 대한 직접적인 대답은 아니지만 보안 메시지를 우회하고 이전에 연결된 프로세스에 더 빠르게 첨부 할 수있는 방법을 제공합니다.

  • Reattach 확장 설치
  • Reattach를 사용하여 첨부하면 메시지가 무시됩니다.
  • 이전 프로세스에 다시 첨부 (Ctrl-R + Ctrl- [1-5])하면 동일한 이점이 있습니다.

3

Powershell 변형 ... $vsversion적용하려는 버전으로 바꿉니다 .

참고 :이 작업을 실행하기 전에 작업을 저장하십시오. 실행중인 모든 VS 인스턴스가 중지됩니다. 열린 VS 인스턴스를 종료하지 않으면 값이 유지되지 않습니다.

$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

따라서 x64 / Win7의 Visual Studio 2010에서 작동하는 유일한 방법은 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


0

SliverNinja와 Martin Hollingsworth의 기존 답변을 기반으로 한 파워 쉘 변형입니다. 이것은 win7 / x64 환경 에서 Visual Studio 2015 로 테스트되었습니다 . 스크립트가 실행 중이면 Visual Studio를 닫으라는 메시지가 표시됩니다 (삭제하지 마십시오).

$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!"
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.