2012-02-27 17 views
7

ASP.NET uygulamasının IIS günlük dosyasının konumunu belirlemeye çalışıyorum. WMI'yi denedim, ancak onu bulamadım. Baska öneri?Bir ASP.NET uygulamasında IIS günlük dosyası konumunu program aracılığıyla alma

Not: Konumu program aracılığıyla alabilmek istiyorum; daha fazla kullanım için başvurumun içinde. Düzenleme: İşte kodum: Bu çalışır, ancak günlüklerin gerçek fiziksel dizin konumunu vermiyor. Yani bu temelde işe yaramaz. Eğer Microsoft.Web.Administration montaj kullanabilirsiniz IIS7

ManagementPath p2=new ManagementPath("IIsLogModule.Name='logging/Microsoft IIS Log File Format'"); 
ManagementObject log = new ManagementObject(scope, p2, objectGet); 
log.Get(); 
logPath.Text = log["__PATH"].ToString(); 
+0

kodunuzu gösterin ?? Şimdiye kadar yaptığınız şey, böylece sihirli değnek ile yardımcı olabiliriz: D –

+0

Hayatınızı zorlaştırmaya çalıştığınızı düşünüyorum. Bu dosyanın nerede olduğunu kontrol ettiğiniz ve bildiğiniz gibi, neden onlara erişemeyen bazı kurulum dosyalarını aradıklarını buldunuz? – Aristos

+0

Sorumu düzenledim. Fakat bu kod bloğu ihtiyacım olandan farklı bir şey gösterdiğinden, size yardım edeceğine inanmıyorum. Hızlı cevap için teşekkürler. – Slethron

cevap

5

, Site sınıf bu kod ile elde edilebilir örneğin günlük dosyası dizini için site için günlük dosyası hakkında çeşitli bilgi alabilirsiniz, LogFile adında bir özelliği vardır:

ServerManager manager = new ServerManager(); 
    Site mySite = manager.Sites["SiteName"]; 
    Response.Write("Log file directory : " + mySite.LogFile.Directory + "\\W3svc" + mySite.Id.ToString()); 

Ben site için dizin öneki ile kodlanmış bir kısmı vardır ancak Sen ADSI (veya WMI) kullanabilmek için bunu yapmak için gereken başka daha iyi bir yol

0

bulamadık dillere çok sevmiyorum - IIS metatabanına göz at ve 'L'ye bak web sitesi düğümü için ogFileDirectory 'özelliği. Örneğin,

var root = new DirectoryEntry(@"IIS://localhost/W3SVC"); 
var sites = root.Children; 
foreach(DirectoryEntry site in sites) { 
    var name = site.Properties["ServerComment"][0]; 
    var logFile = site.Properties["LogFileDirectory"][0]; 
} 

Yasal Uyarı: Untested kod

Bkz this powershell example benzer bir fikir kullanarak.

İlgili konular