ข้อผิดพลาด - ไม่สามารถเข้าถึง IIS metabase


842

หลังจากติดตั้งVisual Studio 2012และเปิดโซลูชันของฉันฉันได้รับชุดข้อผิดพลาดในแบบฟอร์มนี้:

เว็บแอพลิเคชันโครงการ Foo ถูกกำหนดให้ใช้IIS
ไม่สามารถเข้าถึงIIS Metabase คุณไม่มีสิทธิ์เพียงพอในการเข้าถึงเว็บไซต์IISบนเครื่องของคุณ

ฉันได้รับสิ่งนี้สำหรับเว็บแอปพลิเคชันแต่ละรายการของเรา


สิ่งที่ฉันได้ลอง:

  1. เรียกใช้ Visual Studio ในฐานะผู้ดูแลระบบ
  2. กำลังเรียกใช้ aspnet_regiis.exe -ga MyUserName
  3. กำลังเรียกใช้ aspnet_regiis.exe -i

สิ่งเหล่านี้ดูเหมือนจะเป็นคำตอบทั่วไปสำหรับปัญหานี้ แต่ฉันไม่เคยประสบความสำเร็จกับพวกเขา

มีอะไรอีกบ้างที่ฉันพยายามทำ


27
คุณทำงานเป็นผู้ดูแลระบบหรือไม่ คุณได้รับป๊อปอัพโต้ตอบการควบคุมบัญชีผู้ใช้เมื่อคุณเปิด VS หรือไม่
Mike Simmons

43
ฉันมีปัญหาเดียวกันและเมื่อฉันวิ่ง VS เป็นผู้ดูแลระบบ (คลิกขวาและเลือกเรียกใช้ในฐานะผู้ดูแลระบบ) มันทำงานได้ดี
Shyju

4
สำหรับทุกคนที่มาที่นี่ในภายหลังฉันแก้ไขปัญหานี้ได้โดยปิดคุณสมบัติ IIS และ .Net Framework ภายใน Windows 7 แล้วเปิดใช้งานอีกครั้ง ที่ไหนสักแห่งในการติดตั้งนั้นแก้ไขปัญหาของฉันได้
jjathman

2
ก่อนที่คุณจะทำตามคำแนะนำใด ๆ ที่โพสต์ที่นี่โปรดตรวจสอบว่าคุณมีการอัปเดต Windows ค้างอยู่หรือไม่ ฉันมีจำนวนมากซึ่งจำเป็นต้องรีบูตการอัปเดตการแก้ไขปัญหา
Thomas Eyde

2
ฉันมีปัญหาเดียวกันหลังจากเพิ่มคุณสมบัติจากลิงค์นี้แล้วฉันอ่านบทความนี้ ปัญหาได้หายไป
ของ JB

คำตอบ:


1447

บนWindows 8 Pro :

%systemroot%\inetsrv\config

บนWindows 7 และ 8.1 และ 10

%systemroot%\System32\inetsrv\config 

( %systemroot%โดยปกติจะอยู่ที่ไหนC:\Windows)

นำทางไปยังตำแหน่งที่เหมาะสมด้านบนใน Windows Explorer คุณจะถูกบล็อกการเข้าถึงด้วยป๊อปอัพที่ระบุว่า:

"คุณไม่มีสิทธิ์เข้าถึงโฟลเดอร์นี้ - คลิกดำเนินการต่อเพื่อเข้าถึงโฟลเดอร์นี้อย่างถาวร"

คลิก 'ดำเนินการต่อ' สำหรับโฟลเดอร์นี้และด้วยโฟลเดอร์ส่งออกด้านล่าง ฉันเปลี่ยนทางลัดกลับเป็น "Run as me" (สมาชิกของโดเมนและผู้ดูแลระบบในพื้นที่) และสามารถเปิดและปรับใช้โซลูชัน


44
มันได้ผลขอบคุณ เพียงหนึ่งบันทึกโฟลเดอร์การตั้งค่าสามารถอยู่ใน C: \ Windows \ System32 \ inetsrv \ config
Alexandr Nikitin

82
% systemroot% \ System32 \ inetsrv \ config (เช่น C: \ WINDOWS \ System32 \ inetsrv \ config) บน windows 8.1 ทำงานได้ดี
stefano

13
% systemroot% \ System32 \ inetsrv \ config เป็นเส้นทางที่ถูกต้องสำหรับ Windows 7
Aidin

44
@Nate ปัญหาคือเมื่อ VS โหลดโครงการจะพยายามเข้าถึง IIS metabase ซึ่งอยู่ในไดเรกทอรีนั้น IIS บนคอมพิวเตอร์ของคุณถูกล็อคภายใต้สิทธิ์ของผู้ดูแลระบบ ดังนั้นเมื่อคุณเปิด VS เป็นผู้ใช้ปกติคุณจะไม่สามารถเข้าถึง metabase ของ IIS และ VS ไม่สามารถโหลดโครงการได้ (ใน Windows 7+ คุณจะเข้าถึงทุกสิ่งในฐานะผู้ใช้ปกติโดยปกติปัญหาคือ VS จะไม่ขอให้คุณยกระดับสิทธิ์เมื่อคุณต้องการดังนั้นคุณต้องให้สิทธิ์ในการเข้าถึงไดเรกทอรีนั้นด้วยตนเอง )
PotatoEngineer

5
%systemroot%\System32\inetsrv\configสำหรับ Windows 10 ด้วย
bonh

248

ฉันคิดว่าคุณไม่ได้ใช้งาน Visual Studio ที่มีสิทธิ์ผู้ดูแลระบบ ดูนั่น:

http://bloggingabout.net/blogs/rick/archive/2012/10/04/unable-to-access-the-iis-metabase.aspx

เพื่ออ้าง

วิธีแก้ปัญหานี้ง่ายมาก: เริ่ม Visual Studio ของคุณด้วย "Run as Administrator" คุณสามารถทำได้โดยคลิกขวาที่ทางลัดแล้วเลือก "Run as Administrator"


ฉันทำงานเป็นผู้ดูแลระบบอย่างแน่นอน ฉันได้รับพรอมต์ UAC และเปิดใช้งานได้สำเร็จจากที่นั่น ฉันใช้สิ่งนี้กับ VS2010 เช่นกัน
jjathman

13
หากคุณต้องการหลีกเลี่ยงความเจ็บปวดในการใช้งานสตูดิโอภาพของคุณในฐานะผู้ดูแลระบบทุกครั้ง (ซึ่ง IMHO เป็นทางออกที่ดีกว่า) จากนั้นตรวจสอบการตอบสนองโดย GordonK2004
Aidin

21
-1 จากฉันบล็อกนี้สนับสนุนการเรียกใช้ IDE ในฐานะผู้ดูแลระบบตลอดเวลา วิธีนี้จะช่วยให้คุณมีปัญหา 101 ข้อในการเขียนรหัสที่ถูกต้องซึ่งทำงานอย่างถูกต้องภายในสภาพแวดล้อมที่ จำกัด ด้านความปลอดภัยที่ผู้ใช้ของคุณจะต้องการ / จำเป็นต้องปรับใช้ จะดีกว่ามากในการแก้ปัญหาความปลอดภัยในขณะที่มันพัฒนาในการพัฒนา (เช่นการทดสอบแต่ละส่วนของรหัสของคุณดี) และจัดทำเอกสารการแก้ปัญหาที่จำเป็นสำหรับผู้ใช้ / ผู้ติดตั้งกว่าที่จะปิด Run-as-Administator ปล่อยและหวังว่าผู้ทดสอบของคุณจะพบกับความกังวลด้านความปลอดภัยทุกอย่างที่คุณมีภาพพื้นหลัง
Darryl Miles

5
@DarrylMiles Care เพื่อแบ่งปันตัวอย่างการใช้งานจริงซึ่งการทำเช่นนี้ทำให้เกิดปัญหาด้านความปลอดภัยหรือไม่
user247702

5
นี่เป็นคำตอบที่น่ากลัวความอัปยศที่แท้จริงมันได้รับการสนับสนุนจนถึงตอนนี้ การใช้ VS เป็นผู้ดูแลระบบไม่ใช่วิธีแก้ปัญหา
Jansky

51

ฉันคิดว่าเราพบปัญหาคล้ายกันในที่ทำงาน สำหรับเราทางออกคือเข้าไปที่แผงควบคุม -> โปรแกรมและคุณสมบัติ -> เปิดหรือปิดคุณสมบัติ Windows ... ภายในนั้นเราต้องเลือกบริการข้อมูลทางอินเทอร์เน็ต -> เครื่องมือการจัดการเว็บ -> ความเข้ากันได้ของการจัดการ IIS 6 -> IIS Metabase และ IIS 6 เข้ากันได้กับการกำหนดค่า กล่องโต้ตอบคุณสมบัติ Windows แสดงตัวเลือก IIS Metabase

ลองดูและแจ้งให้เราทราบหากช่วยได้!

หมายเหตุ: เรากำลังเรียกใช้ IIS 7.5 บน Windows 7 โดยใช้ทั้ง Visual Studio 2005 และ 2010 และทำสิ่งต่าง ๆ กับ WebServices (.asmx) super-old-school


1
ฉันลองวิธีแก้ไขปัญหาอื่น ๆ ทั้งหมด (การอนุญาตให้ตั้งค่าโฟลเดอร์ไม่ใช้ IIS, เรียกใช้ VS เป็นผู้ดูแลระบบ, เริ่ม IIS ใหม่ ฯลฯ ) แต่นี่เป็นทางออกเดียวที่เหมาะกับฉัน ขอบคุณสำหรับการแบ่งปัน!
Chris Knight

ขอบคุณสิ่งนี้ช่วยฉันด้วย ฉันใช้ VS2013 และโครงสร้างไฟล์ config ของโครงการต่างจากคำตอบของ Bruno Sena ฉันกำลังจะดึงผมออก แต่แล้วฉันจำได้ว่าฉันกล้าและเลือกที่จะลองใช้วิธีนี้ซึ่งเป็นการแก้ไขอย่างรวดเร็ว
BraveNewMath

ตรวจสอบให้แน่ใจว่าIIS Admin serviceเริ่มต้นแล้วและตั้งค่าประเภทการเริ่มต้นเป็นอัตโนมัติแทนการปิดการใช้งาน
Ivan Chau

1
ตามที่ จำกัด การกำหนดค่าของคุณนี่อาจจำเป็นต้องมีสิทธิ์ของผู้ดูแลระบบ
surfmuggle

34

ฉันแก้ไขปัญหานี้ได้ด้วยการให้สิทธิ์ IIS AppPool กับ %systemroot%\inetsrv\config


9
ที่สมบูรณ์แบบ! ไม่จำเป็นต้องกังวลอีกต่อไปในฐานะผู้ดูแลระบบ โฟลเดอร์สำหรับ Win 7 อยู่ที่นี่: C: \ Windows \ System32 \ inetsrv \ config
btomas

สิ่งนี้ก็ใช้ได้กับฉันเช่นกัน Windows 8.1, IIS 7.0, VS 2012 ขอบคุณมาก
Balthasar

3
ควรเป็น% systemroot% \ system32 \ inetsrv \ config
BlackICE

28

หากคุณกำลังทำงานกับโครงการที่ไม่ต้องการใช้ IIS แล้ววิธีแก้ปัญหาเพื่อเปิดโครงการที่มีข้อผิดพลาดนี้คือเพียงคลิกขวาที่โครงการที่ไม่ได้โหลดและคลิกแก้ไขค้นหา:

<ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
</Project>

และตั้งค่า USEIIS เป็นเท็จ

<UseIIS>False</UseIIS>

โหลดโครงการอีกครั้งโดยคลิกขวาหลังจากบันทึกการเปลี่ยนแปลง


สิ่งนี้ใช้ได้สำหรับฉัน แต่ปัญหาพื้นฐานที่นี่คืออะไร จะต้องเป็นเท็จบนเดสก์ท็อปของฉัน แต่จริงบนแล็ปท็อปของฉัน ดังนั้นถ้าฉันตรวจสอบโครงการใน TFS บนแล็ปท็อปของฉันมันไม่สามารถโหลดบนเดสก์ท็อปของฉันและในทางกลับกันจนกว่าฉันจะเปลี่ยนสิ่งนี้
Derek Ziemba

5
วิธีนี้ช่วยแก้ปัญหาการไม่สามารถใช้ IIS ได้อย่างไร
Jonathon Cowley-Thom

การตั้งค่า<UseIIS>False</UseIIS>ไม่ทำงาน โหนด<UseIISExpress>true</UseIISExpress>ก็ปรากฏขึ้นเช่นกัน การตั้งค่าเป็นเท็จไม่ได้ช่วย ยังคงต้องการการเข้าถึงข้อผิดพลาดเดียวกันกับ iis
surfmuggle

ทางออกเดียวที่ใช้ได้ในกรณีของฉัน
Nick Chan Abdullah

18

ฉันมีปัญหาสองประเภทแยกกันนำไปสู่ข้อผิดพลาดนี้และคิดว่าฉันจะแบ่งปัน ...

1. The directory was on an network share and due to UAC restrictions, was 
   unable to be accessed -- even when running as an admin.
2. The directory was on a drive that didn't exist...

ต้นกำเนิดทั้งสองนี้มาจากตัวเลือกที่โชคร้าย (imo) โดย MS เพื่อใส่สิ่งต่างๆลงในไดเรกทอรีเอกสารหรือ My Document รวมกับข้อความผิดพลาดที่น่ารังเกียจ ในทั้งสองกรณีข้างต้นปัญหาพื้นฐานคือไฟล์ IISExpress Config ปรากฏในเอกสารของฉันและไม่มีอยู่หรือไม่สามารถเข้าถึงได้


คุณแก้ปัญหาอย่างไร ฉันคิดว่าฉันกำลังเผชิญกับหนึ่งในสองปัญหา
Tassisto

ตรวจสอบให้แน่ใจว่าทั้งไดเรกทอรีโครงการและไดเรกทอรีเอกสารของฉันอยู่ในดิสก์ไดรฟ์ในเครื่อง ฉันวางทั้งคู่ไว้ใน C: \
jmoreno

7
VPN ของเราเสียชีวิตบ่อยครั้งและปล่อยHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal ให้ชี้ไปยังไฟล์แชร์ที่ไม่มีอยู่จริง การเปลี่ยนเส้นทางนั้นเป็นเส้นทางท้องถิ่นช่วยแก้ปัญหานี้ให้ฉันได้
Pasi Savolainen

ทางออกสำหรับฉันคือการคัดลอกIISExpressโฟลเดอร์จากโฟลเดอร์เอกสารของฉันบนเครื่องอื่นไปยังเครื่องใหม่ของฉันแล้วสิ่งต่างๆก็เริ่มทำงาน
twhitbeck

ลองทำดังนี้: stackoverflow.com/questions/28459396/…
Eduardo

13

ขอบคุณทุกคนที่ตอบกลับ ตั้งแต่นี้ถูกปิดเป็นเวลานานฉันไม่สามารถให้ข้อเสนอแนะมาก แต่ในที่สุดฉันก็แก้ไขปัญหาได้ ฉันลองใช้วิธีแก้ไขปัญหาอื่น ๆ เหล่านี้มากมายและพวกเขาไม่ได้แก้ไขปัญหาของฉัน แต่ฉันแน่ใจว่าพวกเขาช่วยเหลือเมื่อสาเหตุที่แตกต่างกัน

โซลูชันของฉัน

ฉันแก้ไขปัญหานี้โดยการปิดฟีเจอร์ IIS และ .Net Framework ภายใน Windows 7 แล้วเปิดอีกครั้ง ดูเหมือนว่าการติดตั้งซ้ำนี้เป็นสิ่งที่แก้ไขปัญหาของฉันได้ ฉันยังไม่รู้ว่าอะไรทำให้เกิดปัญหา แต่อย่างน้อยหนึ่งนักพัฒนาคนอื่นในทีมของฉันมีปัญหาเดียวกัน


13

บน windows 81 จากพรอมต์คำสั่ง admin ให้ใช้:

icacls "C:\Windows\System32\inetsrv\config" /t /grant "IIS AppPool\DefaultAppPool":(R)

จากนั้นย้อนกลับไปใน VS คลิกขวาที่โครงการที่ล้มเหลวเลือกโหลดใหม่

เครดิตไปที่: ภาพรวมสิทธิ์ IIS7 - ApplicationPoolIdentity


ไม่สิ่งนี้จะให้สิทธิ์ในการอ่านกับการกำหนดค่า IIS ไปยังพูลแอปพลิเคชันเว็บที่ทำงานเป็นข้อมูลประจำตัวนั้น Visual Studio ไม่ทำงานด้วยข้อมูลประจำตัวนี้ดังนั้นจึงไม่ช่วยคำถามนี้ เพิ่มเติมทำไมคุณถึงปล่อยให้กลุ่มแอพพลิเคชั่นเข้าถึงการกำหนดค่า IIS นั่นคือการขอปัญหา
David Bullock

2
+1 แต่แทนที่จะให้สิทธิ์การเข้าถึง DefaultAppPool ฉันให้สิทธิ์การอ่าน / เขียนแก่ผู้ใช้ของฉันและแก้ไขข้อผิดพลาด
David Schwartz

ฉันทำเช่นเดียวกันกับ David ยกเว้นควบคุมเต็มรูปแบบ (F) และแก้ไขปัญหาของฉันได้
Bernesto

13

การนำทางไปยังโฟลเดอร์: %systemroot%\System32\inetsrv\configนำเสนอกล่องโต้ตอบความปลอดภัย คลิกดำเนินการต่อและอาจแก้ไขปัญหาได้ สิ่งนี้ใช้ได้กับเครื่อง Win 10 / VS 2017 / IIS สองเครื่อง


สิ่งนี้ได้ผลสำหรับฉันมาก่อนเช่นกัน วันนี้ลองใช้แล็ปท็อปเครื่องใหม่ฉันไม่ได้รับกล่องโต้ตอบความปลอดภัยเมื่อไปที่โฟลเดอร์ฉันไม่สามารถเข้าไปยังไดเรกทอรีปรับแต่งได้เลย ฉันต้องคลิกขวาและเปลี่ยนการอนุญาตในโฟลเดอร์ (ซึ่งจำเป็นต้องใช้การเข้าถึงของผู้ดูแลระบบในพื้นที่ของฉัน) และให้สิทธิ์ตัวเองจากนั้นก็ใช้งานได้
CaseyR

12

ฉันมีปัญหานี้ - อาการเหมือนกัน แต่ปัญหาที่ฉันมีคือฉันได้ตั้งโฟลเดอร์ "เอกสารของฉัน" ให้อยู่ในเครือข่ายที่ใช้ร่วมกันและไม่สามารถเข้าถึงส่วนแบ่งได้

ปัญหาหลักคือไฟล์ IIS config ที่อยู่ที่% USERPROFILE% \ Documents ไม่สามารถเข้าถึงได้ เมื่อฉันเปลี่ยนตำแหน่งโฟลเดอร์ "My Documents" (ฉันแก้ไขค่า reg) มันเริ่มทำงานอีกครั้ง

ฉันรู้ว่านี่อาจไม่ใช่สถานการณ์ทั่วไปที่คุณอาจพบเจอ แต่ฉันโพสต์ไว้ที่นี่เพราะมีอาการเหมือนกัน


เราทำงานใน VM, เพื่อนร่วมงานสิ้นสุดการตั้งค่าโฟลเดอร์ที่ใช้ร่วมกันซึ่งจบลงด้วยการใช้โฟลเดอร์ "My Documents" ไปยังเส้นทางเครือข่าย ตามที่ระบุไว้คำตอบนี้จะไม่ทำงานหากไม่มีโฟลเดอร์เอกสาร ฉันจะตรวจสอบว่าโฟลเดอร์นี้พร้อมใช้งานเป็นสิ่งแรกในอนาคตเพื่อบันทึก 2 ชั่วโมงที่เราใช้ไปกับโพสต์เหล่านี้และฮ่า ๆ ๆ
โทนี่

ฉันมีปัญหานี้ด้วย โฟลเดอร์เอกสารของฉันอยู่บนเครือข่ายที่ใช้ร่วมกันและปัญหาเครือข่ายป้องกันการเข้าถึง เมื่อฉันแก้ไขปัญหาเครือข่าย Visual Studio หยุดให้ข้อผิดพลาด IIS Metabase
GiddyUpHorsey

7

ฉันเจอสิ่งนี้วันนี้และแก้ไขปัญหาโดยการลบ IISUrl ออกจากไฟล์โครงการ:

  1. คลิกขวาที่โครงการ
  2. คลิกแก้ไข
  3. ลบบรรทัดต่อไปนี้:

     <IISUrl>http://localhost:xxxxx </IISUrl>
  4. โหลดโครงการซ้ำ

  5. ตอนนี้เพิ่มไดเรกทอรีเสมือน IIS ใหม่โดยคลิกขวาที่โครงการ> คุณสมบัติ> เว็บและเลือกใช้เซิร์ฟเวอร์เว็บ IIS ท้องถิ่น (ยกเลิกการเลือกใช้ IIS Express) และคลิกปุ่มสร้างไดเรกทอรีเสมือน

สิ่งนี้จะไม่แก้ปัญหา OP เนื่องจากคุณไม่สามารถเปิดโครงการเพื่อเปลี่ยน URL เมื่อคุณได้รับข้อผิดพลาดนี้
htm11h

ฉันไม่เห็นด้วยกับ @ htm11h บางส่วน ฉันมีข้อผิดพลาดของ OP และลบรายการเดียวด้านบน (นอก VS) จากนั้นฉันก็รัน VS และสามารถเปิดคุณสมบัติได้อย่างน้อย มันจะไม่ให้ฉันบันทึกการแก้ไขดังนั้นฉันจึงต้องเปิด%systemroot%\System32\inetsrv\configหนึ่งครั้งและดำเนินการต่อในฐานะผู้ดูแลระบบ เปิด%systemroot%\System32\inetsrv\config\Exportและทำเช่นเดียวกัน ( ข้อผิดพลาดที่ไม่สามารถเข้าถึง
-is

ความคิดเห็นของฉันคือมันไม่สามารถซ่อมแซมได้จากภายใน VS ตามที่คุณระบุไว้ ยินดีที่ได้ทราบว่าคุณสามารถแก้ไขไฟล์ได้โดยตรง แต่ไม่ได้ระบุไว้ในขณะนั้น ส่วนใหญ่มีการค้นหาแฮ็ค reg
htm11h

7

คุณอาจพบปัญหานี้และมีปัญหาเช่นเดียวกับฉัน ฉัน "แก้ไข" มันก่อนแล้วไฟฟ้าดับและคอมพิวเตอร์ล้มเหลวไม่แน่ใจว่าทำไมรีจิสทรีการตั้งค่าหวนกลับ แต่มันเป็นแหล่งที่มาของปัญหาของฉัน

  1. ฉันลองใช้งานเป็นผู้ดูแลระบบ
  2. IIS / IIS express ทั้งหมดติดตั้งใหม่
  3. ต่างๆ"แฮ็ก"

ลงมาเพื่อแก้ไขรีจิสทรีอีกครั้ง

  1. ไม่สามารถเป็นผู้ดูแลได้แม้เปิด regedit (จำเป็นต้องเข้าถึงรีจิสทรีเนื่องจากปัญหาไม่ได้อยู่กับแม่แบบผู้ดูแลระบบ gpedit.msc)

  2. UnHookExec.inf บนเดสก์ท็อป

เพียงบันทึก UnHookExec.inf และติดตั้งโดยคลิกขวาแล้วเลือกติดตั้ง การติดตั้งไฟล์จะไม่แสดงป๊อปอัพหรือกล่องแจ้งเตือนใด ๆ http://www.tweakandtrick.com/2011/04/enable-regedit-registry-editor.html

  1. HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User เชลล์ Folders \ Personalชี้ไปที่ไฟล์แชร์ที่ไม่มีอยู่จริง การเปลี่ยนเส้นทางนั้นเป็นเส้นทางท้องถิ่นช่วยแก้ปัญหานี้ให้ฉันได้ - Pasi Savolainen 14 ก.ค. 14 เวลา 8:41 น

(เปลี่ยนจาก \\cs2data\home\stickelt\my documents เป็น c:\dev )

ตอนนี้ทุกอย่างดีและ Visual Studio เปิดโซลูชันที่มี 15 โครงการและเชื่อมต่อกับ IIS และไม่บ่นว่าไม่สามารถเข้าถึงข้อมูลเมตาของ iis

ฉันไม่เคยเจอเรื่องแบบนี้มาก่อนเนื่องจากไม่มีใครในงานปัจจุบันมีปัญหานี้ (หลายคนอยู่ที่นี่มานานบางคนได้รับโคลนเครื่องอื่น ๆ ที่ "ทำงาน" และอีกหลายคนอยู่ในโดเมนอื่น ฯลฯ )


6

ฉันเพิ่งมีปัญหานี้ในวันนี้และฉันพบว่าฉันไม่ได้เปิด VS เป็น 'Run as Administrator' หลังจากทำสิ่งนี้ฉันก็สามารถเผยแพร่บริการได้


4

หากคุณมีสิทธิ์ผู้ดูแลระบบคลิกขวาที่ไอคอน Visual Studio> Properties จากนั้นขั้นสูงให้ตรวจสอบ "Run as administrator" คุณสามารถเรียกใช้ visaul studio ในฐานะผู้ดูแลระบบได้โดยตรงอีกต่อไป วิธีนี้เป็นทางการและพื้นฐานมาก


3

นอกจากคำตอบโดย @nologo ฉันต้องใช้ IIS ด้วย ดังนั้นฉันจึงเปลี่ยน

<UseIIS>True</UseIIS>

เป็น 'เท็จ' ก่อน

  • เปิดโซลูชันและทำให้มั่นใจว่าสามารถโหลดโครงการได้
  • ปิดโซลูชันและอินสแตนซ์ของ Visual Studio นั้น
  • เปลี่ยนค่าเป็น 'True' อีกครั้ง
  • เปิดโซลูชัน ครั้งนี้ฉันไม่ได้รับข้อผิดพลาด / คำเตือน ฉันสามารถรันด้วย Ctrl + F5 หรือ F5 ได้โดยไม่มีปัญหาในขณะที่โครงการของฉันถูกแมปกับเว็บไซต์ IIS

สิ่งนี้ช่วยฉันด้วย VS 2015, Win10 คำแนะนำที่เป็นประโยชน์ในที่นี่ปัญหาน่ารังเกียจ ขอบคุณมาก.
peter_the_oak

นี่คือใน web.config? ถ้าเป็นเช่นนั้นอยู่ที่ไหน
บ็อบฮอร์น

@BobHorn นี่คือไฟล์ csproj หรือ vbproj เปิดไฟล์ในโปรแกรมแก้ไขข้อความ
KSK

3

การเปลี่ยนคีย์นี้ใช้งานได้สำหรับฉัน:

โฟลเดอร์ Shellers \ Personal HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ User HKEY_CURRENT_USER

ไม่มีตำแหน่ง


ฉันมีการเปลี่ยนแปลงที่สำคัญที่คุณกล่าวถึงและยัง HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Personalนี่เป็นเพราะเส้นทางโปรไฟล์ถูกตั้งค่าเป็นไดเรกทอรีที่ไม่มีอยู่ใน Active Directory / นโยบายกลุ่ม
ปริศนา

ผู้ร้ายคนที่สามคือHKEY_CURRENT_USER\Software\Microsoft\IISExpressซึ่งเป็นผู้แทนที่กำหนดเองและผู้กระทำผิดที่เป็นไปได้อีกอย่างสำหรับปัญหานี้
Fiddles

2

ฉันยังมีปัญหาที่คล้ายกัน โซลูชันของฉันคือส่วนขยายของคำตอบ "Run as admin" ซึ่งฉันหวังว่าบางคนอาจพบว่ามีประโยชน์

ฉันใช้ VS2012 และเกือบทุกครั้งที่ฉันต้องคลิกขวาเรียกใช้ในฐานะผู้ดูแลระบบ ฉันเบื่อกับสิ่งนี้ดังนั้นแทนที่จะเข้าสู่คุณสมบัติของมันบนทางลัดคลิกขั้นสูงแล้วคลิกตัวเลือก ตอนนี้ VS2012 จะทำงานเป็นผู้ดูแลระบบเสมอเมื่อใดก็ตามที่ฉันเปิดจากทางลัดนั้นนั้น

บิตลัดจากนั้นสำคัญ ฉันดำเนินการแยกสาขาโครงการของฉันและดาวน์โหลดสาขาไปยังโฟลเดอร์ในเครื่องใหม่ จากนั้นเมื่อฉันเปิดมันจากทางลัดที่ฉันไม่มีปัญหา แต่ถ้าฉันเข้าไปในโฟลเดอร์โดยตรงและรันโครงการในเครื่องโดยไม่มีทางลัดมันก็ไม่ได้ทำงานในฐานะผู้ดูแลระบบและฉันได้รับข้อผิดพลาดนี้

เมื่อฉันเปิด VS2012 ตามปกติก่อนจากนั้นใช้ไฟล์ / เปิด / โครงการมันทำงานอีกครั้งไม่มีปัญหา (เพราะฉันทำงานเป็นผู้ดูแลระบบ) แต่ฉันไม่ได้ทำงานเป็นผู้ดูแลระบบเมื่อฉันเปิดโซลูชันโดยใช้ตัวจัดการไฟล์ของ windows

คำแนะนำอื่น ๆ ดูค่อนข้างรุนแรง แต่นี่มันค่อนข้างง่ายดังนั้นฉันมักจะลองทำสิ่งนี้ก่อน

หวังว่านี่จะเป็นประโยชน์


2

ดูเหมือนว่าหนึ่งในประเภทของ "ข้อผิดพลาดทั้งหมดนำไปสู่ข้อความนี้"

ฉันคือแอพพูลถูกปิด ฉันเปิดใช้งานอีกครั้งและทุกอย่างทำงานได้ดี


2

อีกสิ่งหนึ่งที่คุณสามารถลองได้:

  • ตรวจสอบว่าคุณมีการอัปเดต Windows อยู่หรือไม่
  • ถ้าเป็นเช่นนั้นโปรดรีบูตก่อนที่จะลองทำสิ่งอื่น

ฉันมักจะไม่ปิดเครื่องของฉันดังนั้นฉันมีพวกเขามากมายรอการรีบูต และนั่นก็แก้ไขมัน


2

ฉันลองทุกอย่างด้านบน เครดิตไปที่คำตอบทั้งหมดข้างต้น หลังจากลองใช้คำแนะนำทั้งหมดด้วยตัวเองฉันเพิ่งประกอบชุดคำแนะนำนี้ตามลำดับที่เหมาะสมกับฉัน หมายเหตุโฟลเดอร์เอกสารของฉันอยู่ในไดรฟ์ที่แชร์ เนื้อหาย่อย / IISExpress ไม่สามารถใช้งานได้เว้นแต่ว่าคุณอยู่ในเรือลำเดียวกัน

  • กำหนดค่า VS เพื่อให้ทำงานในฐานะผู้ดูแลระบบ
  • ถอนการติดตั้ง IIS ผ่าน Add / Remove Programs, คุณสมบัติ Windows
  • Reboot
  • เรียกใช้ WinRAR หรือสิ่งที่คล้ายกันเป็นผู้ดูแลระบบและเก็บถาวร C:\windows\system32\inetsrv\
  • เรียกใช้ cmd ในฐานะผู้ดูแลระบบและ rmdir /s c:\windows\system32\inetsrv\เพื่อลบการติดตั้งล่าสุดทั้งหมดอย่างสมบูรณ์ ปล่อยให้พรอมต์คำสั่งยกระดับเปิดในภายหลัง
  • ติดตั้ง IIS ใหม่ด้วยความเข้ากันได้กับ Metabase IIS 6 (สงสัยว่านี่เป็นสิ่งจำเป็น)
  • ปล่อยให้ AppPool เริ่มต้นและเว็บไซต์เริ่มต้นตามที่เป็นอยู่ (ฉันได้ลบทั้งสองไปก่อนหน้านี้)
  • Ran C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ga MYDOMAIN\scottt732
  • Ran C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -i

นอกจากนี้เนื่องจากโฟลเดอร์เอกสารของฉันอยู่ในไดรฟ์ที่ใช้ร่วมกันฉันจึงมีปัญหา IIS Express ฉันไม่ได้ใช้ / เช่น IIS Express แต่ Visual Studio บ่นเกี่ยวกับเรื่องนี้

  • จากการยกระดับ cmd subst U: c:\Tempพรอมต์วิ่ง ที่สร้างไว้C:\Temp\Documents\และคัดลอกโฟลเดอร์ IISExpress จากไดรฟ์ U ของฉัน
  • สร้างCustomUserHomeรหัสHKCU\Software\Microsoft\IISExpressด้วยC:\Temp\Documents\IISExpress
  • สิ่งนี้ทำให้ฉันได้รับ Visual Studio เพื่อเปิดโครงการเว็บของฉันและแก้ไขคุณสมบัติ ฉันปรับแต่งโครงการเพื่อจัดเก็บการตั้งค่าเว็บเซิร์ฟเวอร์ในไฟล์ผู้ใช้และปรับให้ใช้ URL ที่กำหนดเอง (ไม่แน่ใจว่าจำเป็นหรือไม่)
  • ฉันอาจ / อาจไม่จำเป็นต้องเรียกใช้substคำสั่งทุกครั้งที่ฉันรีสตาร์ท ไม่แคร์

และหลังจากโยนผ้าเช็ดตัว 3 ครั้งและใช้เวลาประมาณ 6 ชั่วโมงฉันสามารถเปิดเว็บโปรเจ็กต์ใน Visual Studio (อัปเดต 2 2558)


หมายเหตุถึงอนาคตฉัน: ฉันอัปเดต Windows 10 เป็นรุ่นทดลองใช้ ครั้งนี้ฉันรัน 2x aspnet_regiis และคำสั่ง subst และกลับมาทำธุรกิจอีกครั้ง โอ้ และอย่าลืมที่จะไขลานนาฬิกาของคุณ
scottt732

2

ไปที่ไดเรกทอรีรากของโครงการของคุณและค้นหาไฟล์ต่อไปนี้:

YourProjectName.csproj.user - ข้างในตรวจสอบให้แน่ใจว่าUseIISExpressถูกตั้งค่าเป็นเท็จ :

<UseIISExpress>false</UseIISExpress>


ถ้าอย่างเดียวไม่ทำงานลองต่อไปนี้และลองอีกครั้ง:

YourProjectName.csproj - ภายในไฟล์โครงการหลักตรวจสอบให้แน่ใจว่า UseIISและUseIISExpressถูกตั้งค่าเป็นเท็จ :

<UseIIS>True</UseIIS>
<UseIISExpress>false</UseIISExpress>


หลังจากเปลี่ยนสิ่งเหล่านี้ฉันก็สามารถโหลดโครงการอีกครั้ง

หมายเหตุ:ตรวจสอบให้แน่ใจว่าคุณใช้ VS ในฐานะผู้ดูแลระบบตามที่ระบุไว้ในคำตอบอื่น ๆ


1

ฉันเพิ่งมีปัญหาเดียวกันกับฉันวันนี้ และฉันก็พบว่ามันน่ารำคาญ แม้ว่าฉันมีอีกสองเว็บไซต์ที่อยู่ระหว่างการพัฒนาจาก IIS เดียวกัน แต่ก็ยังไม่สามารถสร้างไซต์ใหม่ได้ แปลก แต่ฉันทำอย่างนี้

  • ลบไซต์จาก IIS
  • สร้างเว็บไซต์ใหม่ตั้งชื่อ "new_site"
  • เลือก Application Pool นอกเหนือจากชื่อไซต์เอง ดังนั้นจะไม่สับสนกับการตั้งค่าเริ่มต้น
  • รักษา IP "ไม่ได้รับมอบหมาย" ถ้าคุณใช้จากเครื่องเดียวกัน
  • ให้พอร์ตที่ไม่ได้ใช้
  • เรียกใช้ Visual Studio เป็น "เรียกใช้ในฐานะผู้ดูแลระบบ" โดยคลิกขวาที่ทางลัดที่สามารถเรียกทำงานได้ VS
  • คุณทำเสร็จแล้ว!

คุณไม่จำเป็นต้องปิด / ติดตั้งสิ่งอื่นใดนอกเหนือจากที่ฉันได้ระบุไว้เพราะใช้งานได้

แจ้งให้เราทราบหากใครมีปัญหาเดียวกันเหมือนฉันและแก้ไขด้วยวิธีเดียวกัน ฉันคิดว่ามันไม่ใช่ปัญหา แต่เป็นวิธีที่ผิดในการสร้างเว็บไซต์บน localhost ที่ Visual Studio ปฏิเสธที่จะเปิด

ฉันหวังว่านี่จะช่วยมือใหม่


1
  1. สร้างทางลัดไปยัง "devenv.exe"
  2. เลือกตัวเลือก "Run as administrator" สำหรับทางลัด
  3. เบล่คลิกที่ทางลัดและเปิดโครงการของคุณอีกครั้ง


1

ฉันซ่อมแซม Visual Studio 2015 เพื่อแก้ไขปัญหานี้ การซ่อมแซมใช้เวลานาน แต่การแก้ไขปัญหาในขณะที่ทำตามข้างบนไม่ได้ ฉันใช้งาน Win 7 enterprise


1

เปิด command prompt visual และพิมพ์คำสั่งด้านล่างและเรียกใช้

aspnet_regiis -ga machinename\ASPNET

หลังจากเรียกใช้คำสั่งข้างต้นรีเซ็ตIISและทดสอบแอปพลิเคชันที่แก้ไขปัญหาของคุณ

หากคำสั่งด้านบนไม่สามารถแก้ปัญหาของคุณได้ให้ลองเรียกใช้คำสั่งด้านล่าง visual studio command prompt:-

aspnet_regiis -i

หรือเราสามารถเรียกใช้คำสั่งข้างต้นได้จากหน้าต่างพรอมต์คำสั่งของเรา

ไปที่เมนูเริ่มและเปิดเรียกใช้แล้วป้อนและคลิก OK

%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe I

หลังจากนั้นรีเซ็ต IIS และทดสอบแอปพลิเคชันที่แก้ไขปัญหาของคุณ


1

ใน Visual Studio 2015: ฉันเปลี่ยน UseIIS ในไฟล์. csproj เป็นเท็จและใช้งานได้สำหรับฉัน

<UseIIS>False</UseIIS>

0

ในข้อความของฉันนอกเหนือจากการบ่นเกี่ยวกับ "ไม่สามารถเข้าถึง IIS metabase ได้" นอกจากนี้ยังกล่าวถึงไม่สามารถเข้าถึง"<IISUrl>http://localhost:6416/</IISUrl>"ได้ คลิกขวาที่โครงการขนถ่ายคลิกแก้ไขค้นหาบรรทัด"<IISUrl>http://localhost:6416/</IISUrl>"แสดงความคิดเห็น โหลดใหม่และควรใช้งานได้ สิ่งนี้เกี่ยวข้องกับผู้ดูแลระบบไม่ได้รับอนุญาตให้เข้าถึงที่อยู่นั้น


0

ฉันมีปัญหาที่คล้ายกัน Visual Studio จะไม่โหลดโครงการเว็บใด ๆ และแสดงข้อผิดพลาด: การสร้างไดเรกทอรีเสมือน <myproj: myport> ล้มเหลว ไม่สามารถเข้าถึง IIS metabase

ในกรณีของฉันมันเป็นจริง IISExpress ที่เป็นต้นเหตุของปัญหา คลิกขวาที่ IIS Express ในโปรแกรมและคุณลักษณะในแผงควบคุมและเลือกการซ่อมแซมแก้ไขปัญหาในเวลาน้อยกว่าสองนาที


0

ฉันใช้ Win 8 Pro และ VS 2013 หลังจากลองทุกอย่างในหน้านี้ ... ฉันเพิ่งติดตั้ง IIS Express 8 ใหม่อีกครั้งและทุกอย่างทำงานได้ดีในตอนนี้ (แม้จะไม่ได้ทำงานในฐานะผู้ดูแลระบบ)

ข้อสรุปของฉันคือว่านี่เป็นข้อผิดพลาดที่ค่อนข้างทั่วไปและมีสาเหตุหลายประการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.