Tamam. Burada, Windows Server 2008 R2'de IIS 7.5'te bir Klasik ASP web sitesi kurmaya çalışıyoruz. Web sitesinin kökü altında dbc adında bir klasör vardır ve her sayfa işlenirken belirli bilgileri okumak ve yazmak için kullanılan bir dosya vardır.
Sorun, IUSR Yazma İzinleri ve IIS_IUSRS Yazma İzinleri veya DefaultAppPool Yazma İzinleri verirseniz, "E: .. \ websiteroot \ dbc \ dosyaadı.txt 'yoluna erişim reddedildi"
Ama eğer o dbc klasöründe HERKESE Yazma erişim izni verirseniz, o zaman herhangi bir hata almıyorum, her şey mükemmel görünüyor.
Daha Fazla Bilgi: Web sitesi Klasik Boru Hattı modunda çalışır, Anonim Kimlik Doğrulama Etkin (belki de etkin olan tek kimlik doğrulamasıdır) .. Ve IUSR hesabını ve Uygulama Havuzu Kimliği'ni kullanarak Anonim kimlik doğrulamasını denedim. Benim durumumda, ApplicationPoolIdentity web sitesinin kimlik doğrulaması için kimliktir. I / O dosyası için bir COM + kullanıyoruz. Ve bir nesneyi örneklemek için Klasik ASP Server.CreateObject. COM + bir ağ hizmeti olarak çalışır.
Düşünceler? HERKES'e Yazma izni vermek istemiyorum. Bir şey mi kaçırıyorum?
ÇÖZÜLDÜ: İşte yaptığım şey.
CipherDemo adlı web sitem, IIS 7.5'te bir AppPoolIdentity altında çalışıyordu ve bu kimlik IIS AppPool \ CipherDemo tarafından bulunabilir. Bu klasörde RW izinleri vermek için ICACLS kullandım.
ve aslında G / Ç dosyasını yapan COM +, Ağ Hizmeti Kimliği altında çalışıyordu. Erişim Engellendi Hatasını izlemek için İşlem İzleyicisi'ni kullanırken, Ağ Hizmeti'nin bu klasörde yalnızca Okuma izni olduğu döndü.
Bu klasöre Yazma erişimi vermek için ICACLS "klasör adı" / grant: r "NT AUTHORITY \ NETWORKSERVICE" :( OI) (CI) RXW / T kullandım.
Ve çözdüm.
Web sitesi CipherDemo Identity olarak çalıştığı için, bu COM + üzerinden dosyaya erişmek için kullanılacak hesap olacak niyetindeydim. Ancak COM + 'nın hala kendi Kimlik sınırları üzerinde çalışacağını bulmak utanç vericidir.