2012-02-27 12 views
7

Sto cercando di determinare il percorso del percorso del file di registro IIS della mia applicazione ASP.NET. Ho provato WMI, ma non sono riuscito a trovarlo. Eventuali suggerimenti?Recupero del percorso del file di registro di IIS in un'applicazione ASP.NET

Nota: voglio essere in grado di recuperare la posizione a livello di programmazione; all'interno della mia domanda per ulteriore utilizzo. Modifica: ecco il mio codice: funziona ma non mi fornisce l'effettiva posizione della directory fisica dei registri. Quindi questo è fondamentalmente inutile.

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

mostra il tuo codice ?? cosa hai fatto finora, in modo da poterti aiutare con la bacchetta magica: D –

+0

Penso che tu cerchi di rendere la tua vita difficile. Dove si trova questo file è qualcosa che controlli, e sai, perché hai vinto per trovarli guardando alcuni file di installazione che probabilmente non hanno accesso ad essi? – Aristos

+0

Ho modificato la mia domanda. Ma non credo che ti aiuterà, dal momento che questo blocco di codice mostra qualcosa di diverso da quello che mi serve. Grazie per la risposta rapida. – Slethron

risposta

5

Su IIS7 si potrebbe usare Microsoft.Web.Administration assemblaggio, Site classe ha una proprietà denominata LogFile, è possibile ottenere varie informazioni su file di log per il sito, per la directory file di esempio di registro può essere ottenuto con questo codice:

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

non mi piace molto che parte hardcoded con il prefisso di directory per il sito, ma non ha trovato nessun altro modo migliore

0

Si dovrebbe in grado di utilizzare ADSI (o WMI) per farlo - cercare la metabase di IIS e cercare 'L Proprietà ogFileDirectory 'per il nodo del sito web. Ad esempio,

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]; 
} 

responsabilità: codice non testato

Vedi this powershell example con un'idea simile.

Problemi correlati