ข้อผิดพลาดการกำหนดค่า: ส่วนการกำหนดค่านี้ไม่สามารถใช้ที่เส้นทางนี้


1779

ฉันพบข้อผิดพลาดในการปรับใช้ไซต์กับเซิร์ฟเวอร์ เมื่อพยายามโหลดโฮมเพจหรือเข้าถึงการรับรองความถูกต้องบนไซต์ใหม่ใน IIS ฉันได้รับข้อผิดพลาด:

ข้อผิดพลาดการกำหนดค่า: ส่วนการกำหนดค่านี้ไม่สามารถใช้ที่เส้นทางนี้ สิ่งนี้เกิดขึ้นเมื่อส่วนถูกล็อคในระดับผู้ปกครอง การล็อคเป็นค่าเริ่มต้น (overrideModeDefault = "Deny") หรือตั้งค่าอย่างชัดเจนโดยแท็กตำแหน่งที่มี overrideMode = "Deny" หรือ Legacy allowOverride = "false"

รายละเอียดเพิ่มเติมสามารถพบได้ที่นี่ในสถานการณ์ที่ 7ตรงกับรหัสข้อผิดพลาดฐานสิบหกของฉัน

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

หากวิธีนี้ถูกต้องอินสแตนซ์ในพื้นที่ของฉันจะทำงานได้ดีกับweb.configเดียวกันได้อย่างไร ตามแอปพลิเคชันของฉันHost.config ส่วนนั้นควรถูกล็อค แต่ไม่ใช่ ฉันไม่ต้องการเปลี่ยนไฟล์applicationHost.configเนื่องจากมีเว็บไซต์อื่น ๆ อีกมากมายที่ทำงานบนเซิร์ฟเวอร์นั้น มีวิธีอื่นหรือไม่?


2
หากคุณมาที่นี่เพราะคุณได้รับข้อผิดพลาดนี้เมื่อพยายามใช้โปรแกรม "รับรองเว็บ" ( certifytheweb.com ) บทความบล็อกนี้อาจเกี่ยวข้อง: renniestechblog.com/information/…
RenniePet

คำตอบ:


3332

ผมมีปัญหาเดียวกัน. จำไม่ได้ว่าพบที่ไหนบนเว็บ แต่นี่คือสิ่งที่ฉันทำ:

  • คลิก "ปุ่มเริ่ม"
  • ในช่องค้นหาป้อน "เปิดหน้าต่างคุณสมบัติหรือปิด"
  • ในหน้าต่างคุณสมบัติคลิก: "Internet Information Services"
  • คลิกที่: "World Wide Web Services"
  • คลิก: "คุณสมบัติการพัฒนาแอปพลิเคชัน"
  • ตรวจสอบ (เปิดใช้งาน) คุณสมบัติ ฉันจะตรวจสอบทั้งหมด แต่ CGI

btw ฉันใช้ Windows 7


84
สร้าง Windows Server 2012 ใหม่และแน่นอนว่าลืมเพิ่ม Application Development ภายใต้ Web Server ฉันตรวจสอบทั้งหมดยกเว้น CGI, ASP และ Server Side รวมถึงเนื่องจากฉันไม่มี ASP คลาสสิกที่นี่
Chris

49
ฉันตรวจสอบ 'คุณสมบัติการพัฒนาแอปพลิเคชัน' แต่ทราบในภายหลังว่าไม่มีฟีเจอร์ใดในโฟลเดอร์นั้นที่ได้รับการเลือกให้เปิดใช้งานจริง ฉันเลือกแต่ละคุณสมบัติด้วยตนเอง (ยกเว้น CGI) เพื่อลบข้อผิดพลาด
Ciaran Gallagher

30
ได้รับการยืนยันสำหรับ IIS8 บน Windows 8 ด้วย
Babak Naffas

74
ได้รับการยืนยันสำหรับ IIS8.5 สำหรับ Windows 8.1
Mike P.

75
ได้รับการยืนยันสำหรับ Windows 10 (IIS 10.0 Build 10240)
sixones

381

คุณสามารถใช้ตัวจัดการ IISเพื่อแก้ไขการตั้งค่าเหล่านั้น

ดูแลนี้เรียนรู้บทความ IIS :

การใช้การมอบหมายคุณสมบัติจากรากของ IIS:

ไอคอนการมอบหมายคุณสมบัติใน IIS Manager

จากนั้นคุณสามารถควบคุมสิทธิ์การอ่าน / เขียนระดับเครื่องซึ่งจะทำให้เกิดข้อผิดพลาดoverrideMode = "ปฏิเสธ"

ตัวอย่างการใช้การมอบหมายคุณสมบัติ


16
หากต้องการดำเนินการต่อไปสิ่งที่ได้ผลสำหรับฉันคือ (โปรดสังเกตว่าโซลูชันนี้อยู่ในกล่อง DEV ของฉันและไม่ใช่ระบบการผลิต): -> เรียงลำดับตามการมอบหมาย -> ค้นหาประเภทอ่านอย่างเดียวทั้งหมด -> ตั้งค่าเป็นอ่าน / เขียน
แอรอน Reed

1
นั่นแก้ไขข้อผิดพลาดที่ฉันได้รับในตัวจัดการ IIS7 ที่น่าแปลกใจก็คือว่ามันได้รับการแก้ไขลูกค้า HTTP 500 ที่ได้รับเมื่อพยายามที่จะเข้าถึงเว็บไซต์
Brian Gideon

6
มีวิธีแก้ไขปัญหาที่แตกต่างกันสองประการที่ปรากฏที่นี่ทั้งสองข้อซึ่งจำเป็นต้องมี สิ่งแรกคือให้ติดตั้งฟีเจอร์การสนับสนุน "Application Server" และ "Web Server" สิ่งที่สองตรวจสอบการตั้งค่าการมอบหมายและเปลี่ยนการตั้งค่าการละเมิดเป็นอ่าน / เขียนจากอ่านอย่างเดียว สิ่งสำคัญที่ควรทราบ: การกำหนดค่าที่กระทำผิดอาจไม่สามารถใช้งานได้ในคุณสมบัติการมอบสิทธิ์เว้นแต่จะมีการติดตั้งคุณสมบัติการสนับสนุนที่ถูกต้อง ในกรณีของฉัน "การรับรองความถูกต้อง - ไม่ระบุชื่อ" เป็นปัญหาและคุณสมบัติการมอบหมายนี้ไม่ปรากฏจนกว่าฉันจะติดตั้งคุณลักษณะเซิร์ฟเวอร์แอปพลิเคชัน
maplemale

1
สิ่งนี้ใช้ได้กับฉัน ใน IIS 8.5, Windows server 2012 R2
ellickakudy rajeesh

1
ปัญหาสำหรับฉันอยู่ในส่วนการรับรองความถูกต้องใน IIS 10 ใน windows 10 ลิงก์นี้ช่วยฉันได้ knowledgebase.progress.com/articles/Article/…
Ajith

184

สำหรับWindows Server 2012และIIS 8ขั้นตอนจะคล้ายกัน

Web Server (IIS)และApplication Serverควรได้รับการติดตั้งและคุณควรจะมีตัวเลือกภายใต้Web Server (IIS) SupportApplication Server

ข้อกำหนด Windows Server 2012 และ IIS 8 สำหรับ MVC


30
เพียงเพื่อชี้แจงช่องทำเครื่องหมาย "สนับสนุนเว็บเซิร์ฟเวอร์ (IIS)" ไม่ได้อยู่ภายใต้โหนด 'เซิร์ฟเวอร์แอปพลิเคชัน' ในรูปด้านบน มันจะแสดงหลังจากที่คุณดำเนินการหลาย 'ถัดไป' และผ่านบทบาทเซิร์ฟเวอร์และคุณสมบัติบนแถบนำทางด้านซ้ายและไปที่ 'บริการบทบาท' (ไม่ปรากฏในรูปด้านบน แต่จะปรากฏสำหรับคุณหลังจากผ่านหลาย 'ถัดไป') ขับรถฉันบ้า: P
thedrs

2
สำหรับผมตัวเลือกที่ปรากฏเฉพาะหลังจากที่ครั้งแรกที่ผมได้เพิ่มกฎ Application Server แล้วเริ่มต้นใหม่เพิ่มบทบาทและคุณลักษณะ Wizard
wonster

145

เรียกดู“ C: \ Windows \ System32 \ inetsrv \ config” (คุณจะต้องมีสิทธิ์ผู้ดูแลระบบที่นี่) เปิด applicationHost.config

หมายเหตุ : ใน IISExpress และ Visual Studio 2015 applicationHost.config จะถูกเก็บไว้ใน$(solutionDir).vs\config\applicationhost.config

ค้นหาส่วนที่ปรากฏในส่วน "แหล่งกำหนดค่า" ของหน้าข้อความแสดงข้อผิดพลาด สำหรับฉันแล้วนี่คือ "โมดูล" หรือ "ตัวจัดการ"

เปลี่ยนแอoverrideModeDefaultททริบิวให้เป็นAllow

ดังนั้นตอนนี้ทั้งเส้นดูเหมือน:

<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />

หลังจากบันทึกไฟล์หน้าเว็บโหลดได้ดีในเบราว์เซอร์ของฉัน

คำเตือน: การ แก้ไข applicationHost.config บน Windows 64 บิต


2
ลิงก์สำหรับ 64- บิตคือ 404 ไปจนถึงแย่คุณไม่ได้รวมข้อมูลที่เป็นประโยชน์ไว้ในคำตอบของคุณโดยตรง
Erik Philips

1
นี่คือมันสำหรับฉันใน ipSecurity บนสภาพแวดล้อม Windows 8.1 dev, +1
Moby Stunt Double

สำหรับ Windows แบบ 64 บิตคุณจะต้องผ่าน notepad.exe และเปิด% SystemRoot% \ System32 \ inetsrv \ config เพื่อรับไฟล์ที่ถูกต้อง
Eddie Fletcher

มันเกิดขึ้นกับฉันเมื่อทำการดีบักภายในเครื่องใน Visual Studio 2017 ภายในส่วน 'การรับรองความถูกต้อง' ช่วยชีวิต!
D Ie

69

คุณต้องปลดล็อคตัวจัดการ สิ่งนี้สามารถทำได้โดยใช้คำสั่ง cmd ต่อไปนี้:

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers

อาจเป็นข้อมูลอื่นสำหรับผู้ที่ได้รับข้อผิดพลาดนี้ใน IIS 8 ในกรณีของฉันคือบนแพลตฟอร์ม Microsoft Server 2012 ฉันใช้เวลาสองสามชั่วโมงในการต่อสู้กับข้อผิดพลาดอื่น ๆ ที่เกิดขึ้นหลังจากดำเนินการ appcmd ในที่สุดฉันก็สามารถแก้ไขได้โดยลบบทบาทเซิร์ฟเวอร์เว็บและติดตั้งอีกครั้ง


สิ่งนี้ใช้ได้กับฉันด้วยเช่นกันสำหรับ system.webServer / security / ipSecurity
Bart Calixto

3
การเล่นชนิดหนึ่ง ต้องทำงานเป็นผู้ดูแลระบบ
JackMorrissey

3
ฉันต้องทำเช่นนี้เพื่อ -section: system.webServer / modules เช่นกัน
Mike

1
ทำงานให้ฉัน - ฉันกำลังมองหาการตั้งค่า/section:access /sslFlags:SslNegotiateCertและพบว่าฉันต้องใช้ข้างต้น-section:access ซึ่งรายงานว่าเป็นUnlocked section "system.webServer/security/access"...
Shaun Wilde

1
ทำงานกับฉันใน Windows Server 2012 R2
Robben_Ford_Fan_boy

50

1.เปิด " เปิดหรือปิดคุณสมบัติ Windows " โดย: WinKey + R => "optionalfeatures" => ตกลง

ป้อนคำอธิบายรูปภาพที่นี่

  1. เปิดใช้งานคุณสมบัติเหล่านั้นภายใต้ " คุณสมบัติการพัฒนาแอปพลิเคชัน"

ป้อนคำอธิบายรูปภาพที่นี่

ทดสอบกับ Win 10 - แต่อาจใช้ได้กับ windows รุ่นอื่นด้วย


2
สมบูรณ์ ฉันเพียงต้องการตรวจสอบกล่อง ASP.NET 4.7 และเลือกข้อกำหนดอื่น ๆ ทั้งหมดที่จำเป็นโดยอัตโนมัติ ทำงานเหมือนมีเสน่ห์โดยไม่ต้องรีสตาร์ทเว็บไซต์
Bill Tarbell

สำหรับเรา IIS noobs การตรวจสอบว่าติดตั้ง asp.net รุ่นที่ถูกต้องจริง ๆ แล้วควรเป็นขั้นตอนแรก
mrfelis

1
เพื่อนที่ยอดเยี่ยม: D
Fabio Silva Lima

38

ฉันรันทั้งสองคำสั่งจากพรอมต์คำสั่งที่ยกระดับ:

%windir%/system32/inetsrv/appcmd unlock config /section:anonymousAuthentication

%windir%/system32/inetsrv/appcmd unlock config /section:windowsAuthentication

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

19
@ โกงนี่เป็นคำตอบที่ดีอย่างสมบูรณ์แบบเพราะมันไม่ได้ส่งเสริมการเปิดใช้งานคุณสมบัติการพัฒนาแอพพลิเคชั่นบนเซิร์ฟเวอร์ มันระบุวิธีการแก้ปัญหาการควบคุมเพื่อสถานการณ์เฉพาะของการได้รับข้อผิดพลาดนี้ มันน่าจะดีกว่า งานที่ดีช่วยเพิ่มความมั่นใจให้กับผู้ชายคนใหม่นั้น - เขาไม่เคยกลับมาหลังจากคุณและ NAZIK ให้ความเห็นเกี่ยวกับความพยายามครั้งแรกของเขาในการเข้าร่วมชุมชน
qujck

1
วิธีนี้แก้ไขปัญหาของฉันกับแอปพลิเคชันที่มีการกำหนดค่าระดับแอปพลิเคชันของการรับรองความถูกต้อง Windows
nebffa

ดีนี่เป็นกลอุบายที่คุณสมบัติการพัฒนาแอปพลิเคชันไม่ได้
สตีเฟ่นโฮลต์

1
ใช้งานได้สำหรับฉัน แต่ทำไม
Kevman

37

ตาม คำตอบของฉันกับปัญหาที่คล้ายกันนี้ ;

ลองปลดล็อคการตั้งค่า IIS ที่เกี่ยวข้องที่ระดับเซิร์ฟเวอร์ดังนี้:

  1. เปิด ตัวจัดการ IIS
  2. เลือกเซิร์ฟเวอร์ในบานหน้าต่างการเชื่อมต่อ
  3. เปิด แก้ไขการกำหนดค่าในบานหน้าต่างหลัก
  4. ในเมนูแบบเลื่อนลงเลือกส่วนที่จะปลดล็อคเช่น system.webServer> defaultPath
  5. คลิก ปลดล็อกคุณสมบัติในบานหน้าต่างด้านขวา
  6. ทำซ้ำสำหรับการตั้งค่าอื่น ๆ ที่คุณต้องการปลดล็อก
  7. เริ่มต้น IIS (ไม่บังคับ) - เลือกเซิร์ฟเวอร์ในบานหน้าต่าง Conncetions คลิกรีสตาร์ทในบานหน้าต่างการทำงาน

1
วิธีนี้ใช้ได้ผลสำหรับฉัน แต่เหตุผลที่แท้จริงนั้นแตกต่างกัน - ฉันต้องติดตั้ง ASP.NET 4.5 (Add-WindowsFeature Web-Asp-Net45)
Der_Meister

26

ในWindows Server 2012ด้วยIIS 8ฉันได้แก้ไขสิ่งนี้โดยเปิดใช้งานคุณสมบัติASP.NET 4.5

ป้อนคำอธิบายรูปภาพที่นี่

แล้วต่อไปนี้คำตอบของเคน


2
ใน PowerShell: Add-WindowsFeature เว็บ ASP-Net45
Der_Meister

26

ตัวเลือกที่ดีที่สุดคือการเปลี่ยนApplication SettingsจากการCustom Site Delegation
เปิดIISและจากการเลือกรากFeature Delegationแล้วเลือกApplication Settingsและจากการเลือกแถบด้านข้างขวาRead/Write ขั้นตอนที่ 1 ขั้นตอนที่ 2


ตัวจัดการ IIS ของฉันไม่มีคุณสมบัติเหล่านี้มากมาย ฉันคิดว่าฉันต้องเพิ่มพวกมันผ่านฟีเจอร์ windows ฉันเลือกทั้งหมดแล้ว (กล่องสี่เหลี่ยมสีดำ) แต่เมื่อฉันคลิกมันไม่มีตัวเลือกใดถูกเลือก! ฉันไม่เคยเห็นสิ่งนี้มาใช้กับระบบปฏิบัติการ Windows ทั้งหมด อัปยศที่คุณ Microsoft! เสียเวลาเปล่า ตรวจสอบให้แน่ใจว่าคุณสมบัติทั้งหมดของ Windows ได้รับการตรวจสอบแล้วที่ต้องการ .. ห้ามใช้การคัดเลือกสี่เหลี่ยมดำ
yardpenalty.com

3
หรือเข้าใจความหมายของ "จัตุรัสสีดำ" เมื่อคุณติดตั้งซอฟต์แวร์บนเซิร์ฟเวอร์ของคุณ
LarryBud

1
ฉันขอเพิ่มขั้นตอนที่ 2.1 -> คลิก "การมอบหมายไซต์ที่กำหนดเอง" ทางด้านขวาจากนั้นเลือกไซต์ที่คุณต้องการอนุญาตให้แทนที่จากดรอปดาวน์ด้านบน ฉันแนะนำให้ไม่อนุญาตให้เขียนทับบนเว็บไซต์ทั้งหมด แต่เฉพาะเว็บไซต์ที่คุณต้องการ จากนั้นไปยังขั้นตอนที่ 3
foxontherock

26

นี่เป็นเคล็ดลับสำหรับฉันสำหรับเซิร์ฟเวอร์ IIS 8 Windows 2012 R2

ไปที่ "เปิดคุณสมบัติ"

จากนั้นไปที่การตั้งค่าเริ่มต้นทั้งหมดถัดไปถัดไปถัดไป ฯลฯ

จากนั้นเลือกตามที่แสดงด้านล่าง ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นรีเซ็ต IIS (เป็นทางเลือก) แต่ให้ปลอดภัยกว่า

ป้อนคำอธิบายรูปภาพที่นี่

นี่เป็นวิธีแก้ไขเพิ่มเติมเนื่องจากเป็นปัญหาทั่วไปที่ทุกคนมีปัญหาแตกต่างกันและแตกต่างกันดังนั้น ไชโย!


1
สิ่งนี้สามารถใช้งานได้บน windows server 2016
M. Schena

1
อันนี้ใช้ได้สำหรับฉัน
aronccs

ทำงานได้อย่างสมบูรณ์บน windows server 2016!
D Todorov

17

ในการแก้ไขปัญหานี้ให้เปิดแอปพลิเคชัน IIS Express ที่โฮสต์ ไฟล์นี้ถูกเก็บไว้ที่ C: \ Users [ชื่อผู้ใช้ของคุณ] \ Documents \ IISExpress \ config \ applicationhost.config

อัพเดตสำหรับ VS2015 +: ตำแหน่งไฟล์ config คือ $ (solutionDir) .vs \ config \ applicationhost.config

มองหาบรรทัดต่อไปนี้

<section name="windowsAuthentication" overrideModeDefault="Deny" />
<section name="anonymousAuthentication" overrideModeDefault="Deny" />
<add name="WindowsAuthenticationModule" lockItem="true" />
<add name="AnonymousAuthenticationModule" lockItem="true" />

เปลี่ยนบรรทัดเหล่านั้นเป็น

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />

บันทึกและรีเฟรชหน้า Asp.net


15

ในกรณีของเราใน IIS 8 เราพบว่ามีข้อผิดพลาดเกิดขึ้นเมื่อพยายามดูการตรวจสอบสิทธิ์ "สำหรับไซต์เมื่อ:

  1. การมอบหมายคุณสมบัติเซิร์ฟเวอร์ทำเครื่องหมายว่า "การรับรองความถูกต้อง - Windows" = "อ่านอย่างเดียว"
  2. ไซต์นั้นมี web.config ที่อ้างอิงการรับรองความถูกต้องของ windows อย่างชัดเจน เช่น,

การทำเครื่องหมายไซต์การมอบหมายคุณสมบัติ "การรับรองความถูกต้อง - Windows" = "อ่าน / เขียน" ข้อผิดพลาดหายไป ปรากฏว่าด้วยคุณสมบัติที่ระบุว่า "อ่านอย่างเดียว" web.config จะไม่ได้รับอนุญาตให้อ้างอิงถึงแม้จะปิดการใช้งานเลยเพราะนี่ถือว่าเป็นการเขียนที่เห็นได้ชัด

เว็บไซต์ web.config ตัวจัดการ IIS - การมอบหมายคุณสมบัติเซิร์ฟเวอร์


13

ดูเหมือนว่าด้วย IIS Express และ VS 2015 จะมีสำเนาของไฟล์ applicationHost.config ที่ $ (solutionDir) .vs \ config \ applicationhost.config ดังนั้นคุณจะต้องทำการเปลี่ยนแปลงที่นั่น ดูลิงค์นี้: http://digitaldrummerj.me/iis-express-windows-authentication/

ตรวจสอบให้แน่ใจว่ามีการเปลี่ยนแปลงบรรทัดเหล่านี้ตามด้านล่าง:

<section name="windowsAuthentication" overrideModeDefault="Allow" />
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<add name="WindowsAuthenticationModule" lockItem="false" />
<add name="AnonymousAuthenticationModule" lockItem="false" />

12

ในกรณีของฉันมันเป็นที่บนเซิร์ฟเวอร์ไม่ได้เปิดใช้งาน "HTTP Activation" ภายใต้. NET Framework Features ดังนั้นสำหรับ Windows Server 2012 วิธีแก้ปัญหาสำหรับฉันคือ:

ตัวจัดการเซิร์ฟเวอร์ -> เพิ่มบทบาทและคุณสมบัติ -> คุณสมบัติ -> ตรวจสอบให้แน่ใจว่าภายใต้. NET Framework รุ่นที่คุณต้องการใช้ถูกเลือก "HTTP Activation"


ไม่ทำงาน @Ray ในเซิร์ฟเวอร์ Windows 7, 8, 10, 2008, 2012
Kiquenet

9

วิธี Powershell ในการเปิดใช้งานคุณสมบัติ (Windows Server 2012 +) - ตัดแต่งตามต้องการ:

Install-WindowsFeature NET-Framework-Core
Install-WindowsFeature Web-Server -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-Features -IncludeAllSubFeature
Install-WindowsFeature NET-Framework-45-ASPNET -IncludeAllSubFeature
Install-WindowsFeature Application-Server -IncludeAllSubFeature
Install-WindowsFeature MSMQ -IncludeAllSubFeature
Install-WindowsFeature WAS -IncludeAllSubFeature

6

ฉันต้องการเปลี่ยนการตั้งค่า SSL ในโฟลเดอร์ย่อยเมื่อฉันได้รับข้อความที่ดีนี้ ในกรณีของฉันการกระทำต่อไปนี้ช่วยฉันออก

เปิด C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config

และเปลี่ยนค่าจาก overrideModeDefault = "Deny" เป็น "Allow"

<sectionGroup name="system.webServer">
 ...
    <sectionGroup name="security">
        <section name="access" overrideModeDefault="Allow" />
    </sectionGroup>

6

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

https://msdn.microsoft.com/en-us/library/ms178685.aspx

ดังนั้นคุณต้องตรวจสอบการตั้งค่าแอพตามลำดับด้านล่าง

  1. ApplicationHost.config ใน C: windows \ system32 \ inetsrv \ config เปลี่ยนแอ็ตทริบิวต์ overrideModeDefault เป็น Allow
  2. ApplicationName.config หรือ web.config ในไดเรกทอรีแอปพลิเคชัน
  3. Web.config ในไดเรกทอรีราก
  4. Web.config ในเว็บไซต์เฉพาะ (พบปัญหาของฉันที่นี่)
  5. Web.config ของรูทเว็บ (การกำหนดค่าของเซิร์ฟเวอร์)
  6. machine.config ของเครื่อง (web.config ของรูทและ machine.config สามารถดูได้ที่ - systemroot \ MicrosoftNET \ Framework \ versionNumber \ CONFIG \ Machine.config)

ทำตามการตั้งค่าเหล่านี้อย่างระมัดระวังตามลำดับที่ 1 ถึง 6 และคุณควรพบมัน


4

ในกรณีของฉันฉันได้รับข้อผิดพลาดนี้เพราะฉันทำงานกับไฟล์การกำหนดค่าที่ไม่ถูกต้อง

ฉันทำสิ่งนี้:

Configuration config = serverManager.GetWebConfiguration(websiteName);
ConfigurationSection serverRuntimeSection = config.GetSection("system.webServer/serverRuntime");
serverRuntimeSection["alternateHostName"] = hostname;

แทนรหัสที่ถูกต้อง:

Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection serverRuntimeSection = configApp.GetSection("system.webServer/serverRuntime", websiteName);
serverRuntimeSection["alternateHostName"] = hostname;

กล่าวอีกนัยหนึ่งฉันพยายามที่จะทำงานบน web.config ของเว็บไซต์แทนไฟล์ทั่วโลก C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config ซึ่งมีส่วน (หรืออาจมีส่วน) สำหรับเว็บไซต์ การตั้งค่าที่ฉันพยายามเปลี่ยนนั้นมีอยู่ในไฟล์ applicationHost.config เท่านั้น


4

ในกรณีของฉันมันเป็นอย่างอื่น

เมื่อฉันโหลดโซลูชันใน Visual Studio เวอร์ชันใหม่ VS เห็นได้ชัดว่าสร้างไฟล์ applicationhost.config เฉพาะโครงการใหม่:

MySolutionDir \ .vs \ Config \ ApplicationHost.config

มันเริ่มใช้การตั้งค่าจากการกำหนดค่าใหม่แทนการตั้งค่า IIS Express ทั่วโลกที่ปรับแต่งแล้วของฉัน (\ Users \% USER% \ Documents \ IISExpress \ Config \ ApplicationHost.config)

ในกรณีของฉันนี่คือการตั้งค่าที่จำเป็นต้องตั้งค่า แน่นอนมันอาจเป็นอย่างอื่นสำหรับคุณ:

<section name="ipSecurity" overrideModeDefault="Allow" />

4

ฉันสังเกตเห็นคำตอบเดียวที่คล้ายกัน แต่ในกรณีของฉันฉันใช้ตัวแก้ไขการกำหนดค่า IIS เพื่อค้นหาส่วนที่ฉันต้องการ "ปลดล็อก"

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่

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

. "$($env:windir)\system32\inetsrv\appcmd" unlock config -section:system.webServer/security/authentication/windowsAuthentication
. "$($env:windir)\system32\inetsrv\appcmd" unlock config -section:system.webServer/security/authentication/anonymousAuthentication

3

ได้รับปัญหาเดียวกันนี้หลังจากติดตั้ง IIS 7 บน Vista Home Premium เพื่อแก้ไขข้อผิดพลาดฉันเปลี่ยนค่าต่อไปนี้ที่อยู่ในไฟล์ applicationHost.config ที่อยู่ใน Windows \ system32 \ inetsrv

เปลี่ยนค่าทั้งหมดต่อไปนี้ที่อยู่ในส่วน ->

<div mce_keep="true"><section name="handlers" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>
<div mce_keep="true"><section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> change this value from "Deny" to "Allow"</div>

3

ลองทำสิ่งนี้ได้ไหม:

ไปที่เส้นทางแอปพลิเคชันที่คุณได้รับข้อผิดพลาดปฏิเสธคลิกขวา

คุณสมบัติ -> แท็บความปลอดภัย

ในนั้นเปลี่ยนสิทธิ์และทำเครื่องหมายในช่องทำเครื่องหมายอ่านและเขียน จากนั้นมันจะทำงานโดยไม่มีข้อผิดพลาดใด ๆ หวังว่า


2

สำหรับ Windows Server 2008 และ IIS 7 ขั้นตอนจะคล้ายกัน โปรดอ้างถึงสิ่งนี้: http://msdn.microsoft.com/en-us/library/vstudio/bb763178(v=vs.100).aspx

ในบริการเพิ่มบทบาทคุณจะเห็น "คุณสมบัติการพัฒนาแอปพลิเคชัน"

ตรวจสอบ (เปิดใช้งาน) คุณสมบัติ ฉันตรวจสอบทั้งหมด


1

ฉันมีปัญหาที่ฉันใส่ค่าแทนที่ = "อนุญาต" (กล่าวถึงที่นี่แล้ว) ...... แต่ในระบบ x64 บิต ....... สมุดบันทึก 32 แผ่น ++ ของฉันถูกบันทึกไว้เป็นภาพหลอน การสลับไปใช้ Notepad (ซึ่งเป็นแอปพลิเคชัน 64 บิตบน x64 บิต O / S) ทำให้ฉันสามารถบันทึกการตั้งค่าได้

ดู:

http://dpotter.net/technical/2009/11/editing-applicationhostconfig-on-64-bit-windows/

ข้อความที่เกี่ยวข้อง:

หนึ่งในปัญหาที่ฉันพบเจอทำให้ต้องดูและอาจแก้ไข applicationHost.config ไฟล์นี้อยู่ที่% SystemRoot% \ System32 \ inetsrv \ config ดูเหมือนง่ายพอ ฉันสามารถค้นหาได้จากบรรทัดคำสั่งได้อย่างง่ายดาย แต่เมื่อฉันไปโหลดในโปรแกรมแก้ไขรายการโปรด (Notepad ++) ฉันพบไฟล์ที่ไม่พบข้อผิดพลาด ปรากฎว่ามีการเปลี่ยนเส้นทางโฟลเดอร์ System32 สำหรับแอปพลิเคชัน 32 บิตไปยัง SysWOW64 ดูเหมือนจะไม่มีวิธีดูโฟลเดอร์ System32 โดยใช้แอพ 32 บิต ไปคิด โชคดีที่ Windows รุ่น 64 บิตมาพร้อมกับ Notepad รุ่น 64 บิต อย่างน้อยฉันก็ไม่ชอบมัน


1

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

ลบส่วนออกแล้ว:

    <security>
        <authentication>
            <windowsAuthentication enabled="true" />
        </authentication>
    </security>

0

ฉันมีปัญหาเดียวกัน

  • แก้ไขได้โดยเปิดใช้งานคุณสมบัติเซิร์ฟเวอร์แอปพลิเคชัน เริ่มต้นระบบใหม่หลังจากนั้น

วิธีการเปิดใช้งานคุณลักษณะ Application Server ? ใน Windows Server 2008 o 2012 หรือไม่ Windows 7,8,10? ใช้ Powershell หรือไม่
Kiquenet

0

สิ่งนี้ใช้ได้กับฉันด้วยใน IIS 8 คุณสามารถแก้ไขปัญหานี้ได้ด้วยการเปลี่ยนเซิร์ฟเวอร์เป็น IIS Express ไปที่ debug-> Properties ในเว็บเลือกเซิร์ฟเวอร์เป็น IIS Express จากดรอปดาวน์จากนั้นสร้างโซลูชันขึ้นมาใหม่


0

หากต้องการทำการเปลี่ยนแปลงที่ระดับแอปพลิเคชัน (Web.Config):

โปรดลบระดับความน่าเชื่อถือออกจาก web.config:

ที่จริงแล้วฉันได้รับข้อผิดพลาดนี้เมื่อฉันพยายามโฮสต์เว็บไซต์ของฉันใน Hosting Server ที่ฉันไม่สามารถควบคุมบนเซิร์ฟเวอร์ของพวกเขา การลบบรรทัดด้านบนออกจากแอปพลิเคชันของฉัน web.config แก้ไขปัญหาของฉันได้


0

การทำงานต่อไปนี้สำหรับฉัน:

ไปที่คุณสมบัติของโครงการ แท็บเว็บ ตั้งค่าเป็น Local IIS และตั้งค่าหน้าเฉพาะ

ฉันมี Windows 7 และ Visual Studio 2013

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