Aracılığıyla paylaş


Visual Studio veya Visual Web Developer kullanarak SQL Server Compact ile ASP.NET Web Uygulaması Dağıtma: Klasör İzinlerini Ayarlama - 6 /12

tarafından Tom Dykstra

Başlangıç Projelerini İndir

Bu öğretici serisi, Visual Studio 2012 RC veya web için Visual Studio Express 2012 RC kullanarak SQL Server Compact veritabanı içeren bir ASP.NET web uygulaması projesi dağıtmayı (yayımlamayı) gösterir. Web Yayımlama Güncelleştirmesi'ni yüklerseniz Visual Studio 2010'u da kullanabilirsiniz. Seriye giriş için serideki ilk öğreticiye bakın.

Visual Studio 2012'nin RC sürümünden sonra sunulan dağıtım özelliklerini gösteren, SQL Server Compact dışındaki SQL Server sürümleri dağıtmayı ve Azure App Service Web Apps'ye dağıtmayı gösteren bir öğretici için bkz. Visual Studio kullanarak Web Dağıtımı'nı ASP.NET.

Genel Bakış

Bu öğreticide, uygulamanın söz konusu klasörde günlük dosyaları oluşturabilmesi için dağıtılan web sitesindeki Elmah klasörü için klasör izinleri ayarlarsınız.

Visual Studio Geliştirme Sunucusu'nu (Cassini) kullanarak Visual Studio'da bir web uygulamasını test ettiğinizde, uygulama sizin kimliğiniz altında çalışır. Büyük olasılıkla geliştirme bilgisayarınızda bir yöneticisiniz ve herhangi bir klasördeki herhangi bir dosyaya herhangi bir şey yapmak için tam yetkiye sahipsiniz. Ancak bir uygulama IIS altında çalıştığında, sitenin atandığı uygulama havuzu için tanımlanan kimlik altında çalışır. Bu genellikle sınırlı izinlere sahip sistem tanımlı bir hesaptır. Varsayılan olarak, web uygulamanızın dosya ve klasörleri üzerinde okuma ve yürütme izinleri vardır, ancak yazma erişimi yoktur.

Uygulamanız web uygulamalarında yaygın olarak kullanılan bir gereksinim olan dosyaları oluşturur veya güncelleştirirse bu bir sorun haline gelir. Contoso Üniversitesi uygulamasında Elmah, hatalarla ilgili ayrıntıları kaydetmek için Elmah klasöründe XML dosyaları oluşturur. Elmah gibi bir şey kullanmasanız bile, siteniz kullanıcıların sitenizdeki bir klasöre veri yazan dosyaları karşıya yüklemesine veya başka görevler gerçekleştirmesine izin verebilir.

Anımsatıcı: Öğreticide ilerlerken bir hata iletisi alırsanız veya bir şey çalışmıyorsa sorun giderme sayfasını kontrol edin.

Hata Günlüğünü ve Raporlamayı Test Etme

Uygulamanın IIS'de nasıl düzgün çalışmadığını görmek için (Visual Studio'da test ettiğinizde olsa da), elmah tarafından normalde günlüğe kaydedilecek bir hataya neden olabilir ve ardından ayrıntıları görmek için Elmah hata günlüğünü açabilirsiniz. Elmah xml dosyası oluşturamadıysa ve hata ayrıntılarını depolayamadıysa, boş bir hata raporu görürsünüz.

Bir tarayıcı açın ve adresine http://localhost/ContosoUniversitygidin ve Studentsx.aspx gibi geçersiz bir URL isteyin. Web.config dosyasındaki ayar "RemoteOnly" olduğundan customErrors ve IIS'yi yerel olarak çalıştırdığınızdan GenericErrorPage.aspx sayfası yerine sistem tarafından oluşturulan bir hata sayfası görürsünüz:

Error_page_Test

Şimdi hata raporunu görmek için Elmah.axd dosyasını çalıştırın. Elmah, Elmah klasöründe xml dosyası oluşturamadığından boş bir hata günlüğü sayfası görürsünüz:

Error_log_page_empty

Elmah Klasöründe Yazma İzni Ayarlama

Klasör izinlerini el ile ayarlayabilir veya dağıtım işleminin otomatik bir parçası yapabilirsiniz. Bunu otomatik yapmak karmaşık MSBuild kodu gerektirir ve bunu yalnızca ilk kez dağıttığınızda yapmanız gerektiğinden, bu öğretici yalnızca el ile nasıl yapılacağını gösterir. (Dağıtım işleminin bu kısmını nasıl yapacağınız hakkında bilgi için, Sayed Hashimi'nin blogundaki Web'de Klasör yayımlama izinlerini ayarlama bölümüne bakın.)

Windows Gezgini'ndeC:\inetpub\wwwroot\ContosoUniversity konumuna gidin. Elmah klasörüne sağ tıklayın, Özellikler'i ve ardından Güvenlik sekmesini seçin.

Elmah_folder_Properties_Security_tab

(Grup veya kullanıcı adları listesinde DefaultAppPool'u görmüyorsanız, bilgisayarınızda IIS ve ASP.NET 4'i ayarlamak için büyük olasılıkla bu öğreticide belirtilen yöntemden başka bir yöntem kullanmışsınızdır. Bu durumda, Contoso Üniversitesi uygulamasına atanan uygulama havuzu tarafından hangi kimliğin kullanıldığını öğrenin ve bu kimliğe yazma izni verin. Bu öğreticinin sonundaki uygulama havuzu kimlikleri hakkındaki bağlantılara bakın.)

Düzenle'ye tıklayın. Elmah İzinleri iletişim kutusunda DefaultAppPool'u seçin ve ardından İzin Versütunundaki Yaz onay kutusunu seçin.

Permissions_for_Elmah_dialog_box

her iki iletişim kutusunda da Tamam'a tıklayın.

Hata Günlüğünü ve Raporlamayı Yeniden Test Etme

Aynı şekilde yeniden hataya neden olarak test edin (hatalı BIR URL isteyin) ve Hata Günlüğü sayfasını çalıştırın. Bu kez hata sayfada görünür.

Elmah_Error_Log_page_Test

Bu klasörde SQL Server Compact veritabanı dosyalarınız olduğundan ve bu veritabanlarındaki verileri güncelleştirebilmek istediğinizden, App_Data klasöründe yazma iznine de sahip olmanız gerekir. Ancak bu durumda, dağıtım işlemi App_Data klasöründe yazma iznini otomatik olarak belirlediğinden fazladan bir şey yapmanız gerekmez.

Contoso Üniversitesi'nin yerel bilgisayarınızdaki IIS'de düzgün çalışmasını sağlamak için gereken tüm görevleri tamamladınız. Sonraki öğreticide, siteyi bir barındırma sağlayıcısına dağıtarak genel kullanıma sunacaksınız.

Daha Fazla Bilgi

Bu örnekte Elmah'ın günlük dosyalarını kaydedememesinin nedeni oldukça açıktı. Sorunun nedeninin çok açık olmadığı durumlarda IIS izlemeyi kullanabilirsiniz; IIS.net sitesinde IIS 7'de İzleme Kullanarak Başarısız İstek sorunlarını giderme bölümüne bakın.

Uygulama havuzu kimliklerine izin verme hakkında daha fazla bilgi için bkz. IIS.net sitesindeki Dosya Sistemi ACL'leri Aracılığıyla IIS'deUygulama Havuzu Kimlikleri ve Güvenli İçerik.