ASP.Net web sitemi localhost üzerinde test etmeye çalışıyorum ve bu hatayı alıyorum:
HTTP Error 401.3 - Unauthorized You do not have permission to view this directory or page because of the access control list (ACL) configuration or encryption settings for this resource on the Web server.
Web sitesi uygulama klasöründe tam okuma/yazma izinlerine sahip aşağıdaki kullanıcılar var:
Bunu düzeltmek için ne yapabilirim?
IIS 7, IIS aracılığıyla dosyalara erişmek için varsayılan kullanıcı olarak "IUSR" oluşturur. Kullanıcı IUSR'nin dosyalara/klasörlere okuma erişimi olmasını sağlayın.
IUSR'nin Access'i okuyup okumadığını nasıl kontrol edebilirim? Sağ Tıkla -> Klasör -> Özellikler -> Güvenlik Sekmesi IUSR'nin Grup mu yoksa kullanıcı adları listesinde mi, yoksa Hayır'a bakın.
Düzenle -> Ekle -> Gelişmiş -> Şimdi Bul -> IUSR'yi seçin ve dört kez Tamam'ı tıklayın.
Bu başka bir forumda buldum, bu yüzden kredi alamıyorum ama yaptım ve benim için çalıştı:
"IIS7'deki Anonim kimlik doğrulama ayarını değiştirmeyi deneyin:
Kimlik Doğrulaması'na tıklayın ve Anonim Kimlik Doğrulaması'nı seçtikten sonra düzenle'ye tıklayın. Açılan pencerede Uygulama Havuzu kimliği'ni seçin ve Tamam'a tıklayın. "
Aynı sorunu IIS 7.5) yaşadım. Benim için, aşağıdaki adımlar sorunu çözmek için çalıştı:
Bu değişikliği yaptıktan sonra 401.3 hatalarım kayboldu.
Bir giriş mekanizması mı yoksa sadece anonim kimlik doğrulaması mı kullanıyorsunuz?
Anonim ise, IIS yöneticisi'ne gidin, Kimlik Doğrulama simgesinden Anonim Kimlik Doğrulama adını seçin, ardından Eylemler'deki Düzenle düğmesini tıklayın. Orada hangi kullanıcının belirtildiğini kontrol edin ve site dosyaları/klasörleri.
Bir tür oturum açma sisteminiz varsa, oturum açtığınız kullanıcıların site dosyalarına ilişkin izinleri olduğundan emin olun ve çalıştırdığınız uygulama havuzunun kimliğinin en az okuma erişimine sahip olduğundan emin olun dosyalara.
Merhaba Benim için IIS 8 iş: 1) Devam IIS sanal dizin - 2) kimlik doğrulaması - 3) Anonim kimlik doğrulaması - 4) Uygulama Havuzu Kimliği ayarlayın.
Varsayılan olarak, IIS 7.5 ile, her Uygulama Havuzu kendi "sanal kimliği" altında çalışır. Uygulama Havuzu'nun kimliği dosya sistemine erişmek için kullanılan kimlik bilgileridir.
Mekaniklerinden emin değilim, ancak Microsoft, belirli yükleme senaryolarında hizmet hesapları oluşturma ihtiyacını azaltırken varsayılan yüklemenin güvenliğini artırmak için bunu yaptı. Ne olursa olsun, bu "sanal kimlik" hesabını tanımlamanız ve dizininize erişim izni vermeniz ya da App Pool'un hizmet hesabını değiştirmeniz gerekecektir.
App Pool sanal kimlikleri "IIS AppPool \" olarak adlandırılır, bu nedenle DefaultAppPool kullanıyorsanız kimliği "IIS AppPool\DefaultAppPool" olur.
Daha ayrıntılı bilgi için this makalesine bakın.
Yanıtlama, kabul edilen cevaba yapılan yorumlardan bilgi eklemek için.
IIS 7.5 içinde, IIS_IUSRS grubu zaten dahil edilmiştir, ancak dosya erişimine/indirilmesine izin vermek için izinlere ayrı IUSR grubu yine de eklenmelidir.
Hesaplardaki farklar hakkında daha fazla bilgi için bkz --- IIS'de Yerleşik Kullanıcı ve Grup Hesaplarını Anlama.
Yukarıdaki cevapların hiçbiri bana yardımcı olmadığından, win7 ve IIS7 çalıştıran yerel makinemde bu sorunu nasıl çözdüğümü paylaşacağımı düşündüm.
IIS7 -> Uygulama Havuzları'na gidin
Sitenizin uygulama havuzunu bulun (benim durumumda DefaultAppPool), sağ tıklayın ve Gelişmiş Seçenekler'i seçin.
Süreç Modeli bölümünü bulun ve alanı, web sitesi klasörünüzdeki dosyalara erişimi olduğundan emin olduğunuz bir kullanıcının kimliği olarak değiştirin (benim durumumda yerel yönetici)
Bunun yeterli olmadığı kullanıcılar için:
Bununla çalışmak için aldım:
Şimdi web sitenizi yenilemeyi deneyin.
Bunu deneyin ... Bilgisayar Yönetimi'ne gidin (bilgisayarıma sağ tıklayın ve Yönet'i seçin) -> Yerel Kullanıcılar ve Gruplar -> Kullanıcılar -> IUSR_MACHINENAME öğesini seçin -> Sağ tıklayın Özellikler -> Üye olduğundan emin olun IIS_WPG ve kullanıcıların değil Misafirlerin.
Server 2008 R2 ile çalışıyorum ve IUser hesabı listede yok.
IIS
aspnet_regiis -c Kullanarak istemci tarafını yüklemeyi deneyin ve ardından IIS'yi sıfırlayın.