Visual Studio 2008または2010を使用している場合、IIS w3wp.exeに接続するたびにAttach Security Warningが表示され、
これをどうやって変えるの?
これがしばらくするとタイムアウトするように見えるので、それを長持ちさせるためにアタッチする方法も知っておくといいでしょう。
Btw:これを以下の回答のコメントとして追加しました。最初にしたことは、msdnの記事 http://msdn.Microsoft.com/en-us/library/ms241736.aspx それは機能しません。
Tzuryが言及した記事にも記載されていますが、このスレッドの答えをまとめると:
レジストリキーを変更するときにVisual Studioが実行されていないことを確認してください。そうしないと、終了時に古い値で上書きされます
次のレジストリキーを1に変更(または作成)します。
Visual Studio 2008HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger\DisableAttachSecurityWarning
Visual Studio 2010HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger\DisableAttachSecurityWarning
Visual Studio 2012HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\Debugger\DisableAttachSecurityWarning
Visual Studio 2013HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\Debugger\DisableAttachSecurityWarning
Visual Studio 2015HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger\DisableAttachSecurityWarning
VS2015の場合、上記のレジストリキーを作成する必要がある場合があります。
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger
、右クリックして新しいDWORD
:を作成します。DisableAttachSecurityWarning
1
。Update:regeditを開きたくない場合は、これを Gist として* .regファイルとして保存して実行してください(VS2017より前のすべてのVSバージョンのキーをインポートします)。
Visual Studio 2017
設定はプライベートレジストリの場所に保存されます。この回答を参照してください: https://stackoverflow.com/a/41122603/6791
VS 2017の場合、これを Gist として* .ps1ファイルとして保存し、adminとして実行するか、以下をコピーして貼り付けます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
}
レジストリ設定は機能します。ただし、%windir%\SysWOW64\
の32ビットregedit.exeを使用するか、HKLM\Software\Wow6432Node\...
の下に追加して、VS2005/2008の32ビットレジストリサンドボックスに設定する必要があります。両方に追加するだけの.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ファイルに保存する場合は、それを行う必要があることに注意してください。
Windows 7で動作するようになりました。VS2008を開いたままでレジストリ値を最初に変更しました。次に、それを閉じてレジストリエディターを更新し、値が0にリセットされたことに気付きました。その後、1に戻し、VS2008を起動しました。現在は正常に動作します。 VS2008を閉じて開き直そうとしましたが、レジストリ値は1のままです。ご協力ありがとうございます
この投稿の他の回答には適切な情報が含まれていますが、それを機能させるのに問題があったため、これは回答を非常に明確にする試みです。これらの手順は、Windows 7 Ultimate 64ビットで実行されているVisual Studio 2010で機能しました。
これを機能させるのに苦労した理由は、HKEY_CURRENT_USERの代わりにHKEY_LOCAL_MACHINEを使用してこれを試していたためです。 Process Monitor とdevenvを少しフィルタリングして、間違いを特定する必要がありました。 HKLM値は、Visual Studioを初めて開く前に設定された場合にのみ効果があると思われます。
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
Iis AppPool IDを実際のWindowsユーザーに変更できます(ローカルマシンの場合)。
あなたの答えは http://msdn.Microsoft.com/en-us/library/ms241736.aspx で利用可能です
この警告を表示する正当なシナリオをデバッグしていて、それを抑制したい場合、これを可能にするレジストリ設定があります。シナリオを完了したら、忘れずに警告を再度有効にしてください。
これは質問に対する直接的な答えではありませんが、セキュリティメッセージを回避し、以前にアタッチされたプロセスにアタッチするより高速な方法を提供します。
Powershell variant ... replace $vsversion
それを適用したいバージョンで。
Note:これを実行する前に作業を保存します。実行中のすべての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
したがって、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
Visual Studioの拡張機能は、VS2015およびVS2017で使用できます。 "すべてに接続" :
通常のプロセスを使用して、「Attach To IIS」を任意のキーコードにバインドできます。
powershell 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!"
}