IIS डीबग करते समय दृश्य स्टूडियो बंद करें सुरक्षा चेतावनी संलग्न करें


160

Visual Studio 2008 या 2010 का उपयोग करते समय, हर बार जब आप IIS w3wp.exe से जुड़ते हैं तो आपको एक सुरक्षा सुरक्षा चेतावनी मिलती है,

आप इसे कैसे चालू करेंगे?

यह जानना भी अच्छा होगा कि इसे लिंजर से कैसे जोड़ा जाए, क्योंकि यह कुछ समय के बाद समाप्त हो जाता है।

Btw: मैंने इसे नीचे दिए गए उत्तर के लिए एक टिप्पणी के रूप में जोड़ा, पहली बात मैंने एमएसडीएन लेख http://msdn.microsoft.com/en-us/library/ms241736.aspx की कोशिश की थी, लेकिन यह काम नहीं करता है।


1
यह हाल तक काम किया, VS2015 में - मेरे पास निश्चित रूप से सभी वीएस इंस्टेंस बंद हैं, और कुंजी सेट है, लेकिन चेतावनी ने फिर से पॉपिंग शुरू कर दी।
फास्टमूलिपिलेशन

जवाबों:


231

Tzury द्वारा उल्लिखित लेख में भी पाया गया है, लेकिन इस सूत्र में उत्तर देने के लिए:

सुनिश्चित करें कि रजिस्ट्री कुंजी को बदलते समय विजुअल स्टूडियो नहीं चल रहा है या पुराने मूल्य के साथ बाहर निकलने पर इसे अधिलेखित कर दिया जाएगा

निम्न रजिस्ट्री कुंजी को 1 में बदलें (या बनाएं) :

विजुअल स्टूडियो 2008 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Debugger\DisableAttachSecurityWarning

विजुअल स्टूडियो 2010 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\10.0\Debugger\DisableAttachSecurityWarning

विजुअल स्टूडियो 2012 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\Debugger\DisableAttachSecurityWarning

विजुअल स्टूडियो 2013 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\Debugger\DisableAttachSecurityWarning

विजुअल स्टूडियो 2015 HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger\DisableAttachSecurityWarning

VS2015 के लिए, आपको ऊपर उल्लिखित रजिस्ट्री कुंजी बनाने की आवश्यकता हो सकती है।

  1. सुनिश्चित करें कि विज़ुअल स्टूडियो नहीं चल रहा है, और रजिस्ट्री संपादक को खोलें।
  2. पर नेविगेट करें HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0\Debugger, राइट-क्लिक करें और एक नया बनाएँ DWORD:
    • नाम: DisableAttachSecurityWarning
    • मान: 1

अद्यतन: यदि आप regedit नहीं खोलना चाहते हैं, तो इस gist को * .reg फ़ाइल के रूप में सहेजें और इसे चलाएं (सभी VS संस्करणों की कुंजियों को VS2017 से कम आयात करें)।

विजुअल स्टूडियो 2017

कॉन्फ़िगरेशन एक निजी रजिस्ट्री स्थान में सहेजा गया है, इस उत्तर को देखें: https://stackoverflow.com/a/41122603/67910

के लिए वी.एस. 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 आपको यह सुनिश्चित करने की आवश्यकता है कि वैसे भी रजिस्ट्री में बदलाव करते समय यह नहीं चल रहा है, अन्यथा यह केवल पुराने मूल्य के साथ बाहर निकलने पर लिखा जाएगा
Wiebe Tijsma

4
2017 के बारे में क्या? डिबगर कुंजी बिल्कुल गायब है (उनमें से अधिकांश गायब हैं)
अडाप्टैबी

4
ऐसा लगता है कि Visual Studio 2017 स्थानीय रजिस्ट्री रखता है, इसलिए आपको इस फ़ाइल को बदलना होगा न कि वैश्विक रजिस्ट्री को। मैंने अटैच सिक्योरिटी वार्निंग के साथ समस्या को हल कर दिया है। और अधिक स्पष्टीकरण के लिए इस उत्तर को पढ़ें: stackoverflow.com/a/41122603/692665
सेरिडान

1
@TravisK, मूल रूप से आपने डिफ़ॉल्ट रूप से इस कुंजी को नहीं रखा है और यह स्थिति मान के साथ इस कुंजी को शून्य के बराबर है। आपके मामले में आपको मैन्युअल रूप से नए DWORD को मुख्य DisableAttachSecurityWarning के साथ जोड़ना चाहिए और डीबगर अनुभाग में 1 के बराबर होना चाहिए। जब आप कर रहे हैं, बस निजी रजिस्ट्री को उतार दें और अब आप अपना MSVS चला सकते हैं और इसका परीक्षण कर सकते हैं।
सेरिडान

13

रजिस्ट्री सेटिंग काम करती है; हालाँकि, आपको यह सुनिश्चित करना होगा कि आपने इसे 32-बिट रजिस्ट्री सैंडबॉक्स में VS2005 / 2008 के लिए सेट किया है या तो 32-बिट regedit.exe का उपयोग करके %windir%\SysWOW64\या इसके तहत जोड़कर 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 चाहता है।।


8

मैं इसे विंडोज 7 पर काम करने में सक्षम था। मैंने पहली बार VS2008 के साथ रजिस्ट्री मूल्य को बदल दिया है जो अभी भी खोला गया है। मैंने फिर इसे बंद कर दिया और रजिस्ट्री संपादक को ताज़ा किया और देखा कि मान 0 पर रीसेट हो गया था। मैंने फिर इसे 1 में बदल दिया और VS2008 शुरू किया। यह अब ठीक काम करता है। मैंने VS2008 को बंद करने और इसे वापस खोलने की कोशिश की है और रजिस्ट्री मूल्य रहता है 1. आपकी मदद के लिए धन्यवाद


7

इस पोस्ट के अन्य उत्तरों में सही जानकारी है, लेकिन मुझे इसे काम करने में समस्या आ रही थी इसलिए यह उत्तर को बहुत स्पष्ट करने का एक प्रयास है। इन निर्देशों ने विंडोज 7 अल्टीमेट 64-बिट पर चल रहे विजुअल स्टूडियो 2010 के लिए काम किया।

  • सुनिश्चित करें कि विज़ुअल स्टूडियो के कोई भी उदाहरण नहीं चल रहे हैं ( devenv.exe की जांच के लिए कार्य प्रबंधक का उपयोग करें )
  • HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ XX \ Debugger में DWORD DisableAttachSecurityWarning रजिस्ट्री मान जोड़ें और मान 1 सेट करें । Visual Studio 2008 के लिए XX को 9.0 में बदलें , 2010 के लिए 10.0 का उपयोग करें

इस काम को पाने के लिए मैंने जो संघर्ष किया, वह यह था कि मैं HKEY_CURRENT_USER के बजाय HKEY_LOCAL_MACHINE का उपयोग करके यह कोशिश कर रहा था। मुझे अपनी गलती की पहचान करने के लिए प्रोसेस मॉनीटर का उपयोग करने के लिए और devenv पर थोड़ा छानने का सहारा लेना पड़ा । मुझे संदेह है कि एचकेएलएम मूल्य का केवल तभी कोई प्रभाव पड़ता है जब यह पहली बार विजुअल स्टूडियो खोलने से पहले सेट हो जाता है।

दृश्य स्टूडियो के किसी भी खुले उदाहरण आपके परिवर्तनों को तब बंद कर देंगे जब वे बंद होंगे और केवल नए उदाहरण किसी भी स्थिति में सेटिंग को उठाएंगे।

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 पहचान को अपने वास्तविक विंडोज़ उपयोगकर्ता में बदल सकते हैं, यदि यह एक स्थानीय मशीन है।


1
मैं हाल ही में इस "सुविधा" है, जो मैं पहले नहीं देखा था, जब आपका जवाब बनाया मुझे एहसास क्योंकि मैं तो बस बंद यह है ने काट लिया था से apppoolidentity को एक वास्तविक उपयोगकर्ता खाते।
drzaus

4

आपका उत्तर http://msdn.microsoft.com/en-us/library/ms241736.aspx पर उपलब्ध है

यदि आप एक वैध परिदृश्य को डिबग कर रहे हैं जो इस चेतावनी को प्रकट करता है, और इसे दबाना चाहता है, तो एक रजिस्ट्री सेटिंग है जो आपको ऐसा करने की अनुमति देती है। परिदृश्य के साथ किए जाने के बाद चेतावनी को पुन: सक्षम करना याद रखें।


4

यह सवाल का सीधा जवाब नहीं है, लेकिन यह सुरक्षा संदेश को दरकिनार करता है और पहले से जुड़ी प्रक्रिया को संलग्न करने का एक तेज़ तरीका भी प्रदान करता है:

  • Reattach एक्सटेंशन स्थापित करें
  • Reattach का उपयोग करके संलग्न करें और संदेश को बायपास कर दिया गया है
  • पिछली प्रक्रिया में फिर से संलग्न (Ctrl-R + Ctrl- [1-5]) एक ही लाभ है

3

Powershell variant ... $vsversionउस संस्करण से प्रतिस्थापित करें जिसे आप इसे लागू करना चाहते हैं।

नोट : इसे चलाने से पहले अपने काम को बचाएं। सभी चल रहे वीएस उदाहरणों को रोक दिया जाएगा। यदि आप खुले वीएस उदाहरणों को समाप्त नहीं करते हैं - तो मूल्य को बरकरार नहीं रखा जाएगा।

$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

इसलिए, केवल एक चीज जो मेरे लिए विज़ुअल स्टूडियो 2010 के साथ x64 / Win7 पर काम करेगी, दोनों नोड्स को अपडेट करना है, जिसमें 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

VS2015 और VS2017 के लिए एक विजुअल स्टूडियो एक्सटेंशन उपलब्ध है: "सभी चीजों को संलग्न करें" :

यहां छवि विवरण दर्ज करें

आप सामान्य प्रक्रिया का उपयोग करके जो भी महत्वपूर्ण कॉर्ड करते हैं, उसके लिए "अटैच टू आईआईएस" को बांध सकते हैं।


0

एक powershell भिन्नता SliverNinja और मार्टिन Hollingsworth से मौजूदा उत्तरों के आधार पर। यह विजुअल स्टूडियो 2015 के साथ एक win7 / x64 पर्यावरण पर परीक्षण किया गया है। स्क्रिप्ट विजुअल स्टूडियो को बंद करने के लिए कहेगी यदि वह चल रहा है (इसे मारने की कोशिश नहीं करेगा)।

$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!"
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.