Saya memiliki bagian ini di web.config saya:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<security>
<authentication>
<anonymousAuthentication enabled="true" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
IIS7 lumpuh dan mengeluh tentang bagian otentikasi:
Modul AnonymousAuthenticationModule
Notification AuthenticateRequest
Handler StaticFile
Error Code 0x80070021
Kesalahan Konfigurasi Bagian konfigurasi ini tidak dapat digunakan di jalur ini. Ini terjadi ketika bagian dikunci di tingkat induk. Penguncian secara default (overrideModeDefault = "Deny"), atau diatur secara eksplisit oleh tag lokasi dengan overrideMode = "Deny" atau warisan allowOverride = "false".
Config Source
69: <authentication>
70: <anonymousAuthentication enabled="true" />
Jadi cara yang biasa untuk menyelesaikan ini adalah dengan masuk %windir%\system32\inetsrv\config\applicationHost.config
dan membuka bagian:
<sectionGroup name="system.webServer">
<sectionGroup name="security">
<section name="access" overrideModeDefault="Deny" />
<section name="applicationDependencies" overrideModeDefault="Deny" />
<sectionGroup name="authentication">
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
<section name="basicAuthentication" overrideModeDefault="Allow" />
<section name="clientCertificateMappingAuthentication" overrideModeDefault="Allow" />
<section name="digestAuthentication" overrideModeDefault="Allow" />
<section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Allow" />
<section name="windowsAuthentication" overrideModeDefault="Allow" />
</sectionGroup>
(sebagai alternatif, appcmd unlock config
).
Yang aneh: Saya sudah melakukan itu dan masih mengeluh.
Saya mencari Lokasi (MVC adalah nama situs web saya yang merupakan akar dari semua situs yang saya gunakan):
<location path="MVC" overrideMode="Allow">
<system.webServer overrideMode="Allow">
<security overrideMode="Allow">
<authentication overrideMode="Allow">
<windowsAuthentication enabled="true" />
<anonymousAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
Masih meledak. Saya bingung mengapa ini terjadi. Saya tidak dapat menghapusnya dari web.config, saya ingin menemukan masalah root.
Apakah ada cara untuk mendapatkan informasi spesifik dari IIS yang aturannya pada akhirnya menyangkal saya?
Sunting: Saya dapat memperbaiki ini menggunakan konsol manajemen IIS7 dengan pergi ke root (mesin saya) dan mengklik "Edit Konfigurasi" dan membuka kunci bagian di sana. Masih saya ingin tahu apakah ada cara yang lebih baik karena saya tidak dapat menemukan file yang sebenarnya dimodifikasi.
sumber
Jawaban:
Lakukan langkah-langkah berikut untuk memperbaiki masalah bagi saya:
system.webServer/security/authentication/anonymousAuthentication
system.webServer/security/authentication/windowsAuthentication
sumber
>%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/security/authentication/windowsAuthentication
Ini menyelesaikan kesalahan saya pada Windows Server 2012, IIS 8.5. Seharusnya bekerja untuk versi lain juga.
.NET Extensibility 4.5
danASP>NET 4.5
, kedua entri ISAPINET 3.5
,.NET 4.5
,ASP.NET 4.5
Web Server (all)
,Management Tools (IIS Management Console and Management Service)
,Windows
sumber
Penguncian konfigurasi dapat terjadi di:
Applicationhost.config (string config: MACHINE / WEBROOT / APPHOST)
file Situs Web.config (MESIN / WEBROOT / APPHOST / Nama Situs Web)
File web.config Aplikasi apa pun yang (MESIN / WEBROOT / APPHOST / Nama Situs / Nama Aplikasi)
Mengunci bagian (bagian: bagian konfigurasi IIS, mis.
<asp>
) Memungkinkan Anda menolak kemampuan untuk mengonfigurasi pengaturan itu kepada siapa pun di tingkat yang lebih rendah dalam hierarki daripada Anda.Menggunakan fitur Delegasi Fitur GUI tidak salah, dan melakukan hal yang sangat mirip dengan apa yang AppCMD lakukan, di bawah penutup - menetapkan OverrideMode untuk bagian tertentu dalam
<location>
tag pada tingkat konfigurasi apa pun yang Anda fokuskan.APPCMD dapat digunakan untuk membuka kunci file, tetapi perhatikan di mana dikatakan melakukannya - tidak sepintar GUI tentang ini.
Menambahkan
-commit:apphost
ke akhir AndaAPPCMD UNLOCK
target perintah applicationHost.config, yang merupakan satu file kunci untuk IIS operasi (menggantikan metabase dari versi sebelumnya; menyimpan semua pengaturan terpusat tetapi memungkinkan menimpa (jika Anda melakukannya) dalam file web.config).Tanpa -commit: apphost, APPCMD akan menargetkan tempat logis terdekat untuk file web.config - baik di tingkat situs atau aplikasi, dan menunjukkan itu mengubah pengaturan menggunakan string konfigurasi seperti set di atas. (Selain: Anda masih dapat menargetkan hanya pengaturan di sub situs web, tetapi komit ke apphost - ia menggunakan tag lokasi untuk melakukannya)
Jadi jika dikatakan (memori paraphrase) "Perubahan berkomitmen untuk MACHINE / WEBROOT / APPHOST", itu berarti tingkat atas hierarki IIS.
Jika dikatakan "berkomitmen untuk Situs Web MESIN / WEBROOT / APPHOST / Dodgy", itu berarti mencari jalan fisik di belakang Situs Web Dodgy, dan menulis file web.config (atau memperbaruinya) di lokasi itu.
sumber
Jika Anda menggunakan IISExpress dan Visual Studio 2015,
applicationHost.config
disimpan di$(solutionDir).vs\config\applicationhost.config
(berkat jawaban Nime Cloud ).Ubah saja
overrideModeDefault="Allow"
sesuai kebutuhan.sumber
Coba di Applicaiton Pool Anda, Nonaktifkan aplikasi 32-bit mendukung IIS Manager -> Application Pool -> pilih [Your AppPool] -> Pengaturan Lanjut -> Aktifkan Aplikasi 32-Bit - ubah ke 'Salah'
sumber
Lihatlah IIS - bagian konfigurasi ini tidak dapat digunakan di jalur ini (penguncian konfigurasi?)
Jawaban yang diterima bekerja dengan baik untuk saya di Windows 10, itu memerintahkan untuk melakukan hal berikut:
sumber