.net - Sådan får du IIS virtual dir & webapplikations fysiske stier med C # kode?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg skriver et værktøj til implementering af webapplikationer i C #. Og jeg skal kontrollere de fysiske mappestrukturer for webapplikationer og virtuelle mapper. Kan dette gøres i C #? ELLER mere generelt, interagere med IIS via C # kode?


Jeg fandt dette link og vil læse det hjem. [2]


Tak.

Bedste reference


Jeg vil stærkt foreslå at bruge Microsoft.Web.Administration dll til fremragende admin funktioner med IIS. [3]


ServerManager serverManager = new ServerManager();

// get the site (e.g. default)
Site site = serverManager.Sites.FirstOrDefault(s => s.Name == "Default Web Site");
// get the application that you are interested in
Application myApp = site.Applications["/Dev1"];

// get the physical path of the virtual directory
Console.WriteLine(myApp.VirtualDirectories[0].PhysicalPath);


giver:


F: \ Dev \ Filialer \ DEV1

Andre referencer 1


Du kan gøre denne slags ting ved hjælp af WMI:


Brug WMI til at konfigurere IIS. [4]


Administrere IIS programatisk. [5]


Og du kan bruge WMI fra C # (google til 'WMI C #').


Så ja det er muligt.

Andre referencer 2


Tag et kig på HttpRequest-objektet. Du kan få den aktuelle webadresse ved hjælp af HttpContext.Current.Request.Url.


Hvis du ville kontrollere, at der findes en virtuel IIS-mappe, kan du forsøge at udføre et Server.MapPath-opkald til den relative webadresse, du forventer at eksistere (igen finder du dette i HttpContext-objektet), og hvis kortlægningen ikke lykkes, kan du da formoder, at en specifik undermappe som angivet af din relative sti ikke eksisterer.


Håber dette hjælper.