Comment obtenir le chemin physique du site Web sur le serveur IIS local? (depuis une application de bureau)

Comment obtenir le chemin qui ressemble généralement à %SystemDrive%\inetpub\wwwroot ?

Je suppose que cela a quelque chose à voir avec la classe Microsoft.Web.Administration.ServerManager , mais je ne pouvais pas trouver un moyen.

Mise à jour: j’essaie d’obtenir le chemin de l’application autonome. Pas une application Web ASP.NET.

Pour découvrir le chemin physique d’un site Web à partir d’une application autonome, procédez comme suit:

 // If IIS7 // Add reference to Microsoft.Web.Administration in // C:\windows\system32\inetsrv using Microsoft.Web.Administration; ... int iisNumber = 2; using(ServerManager serverManager = new ServerManager()) { var site = serverManager.Sites.Where(s => s.Id == iisNumber).Single(); var applicationRoot = site.Applications.Where(a => a.Path == "/").Single(); var virtualRoot = applicationRoot.VirtualDirectories.Where(v => v.Path == "/").Single(); Console.WriteLine(virtualRoot.PhysicalPath); } 

Si vous utilisez IIS 6 (ou la couche de compatibilité administrateur IIS6 pour IIS7)

 // If IIS6 // Add reference to System.DirectoryServices on .NET add ref tab using System.DirectoryServices; ... int iisNumber = 2; ssortingng metabasePath = Ssortingng.Format("IIS://Localhost/W3SVC/{0}/root", iisNumber); using(DirectoryEntry de = new DirectoryEntry(metabasePath)) { Console.WriteLine(de.Properties["Path"].Value); } 

Ces deux exemples montrent comment découvrir le chemin d’access à la racine d’un site Web .

Pour découvrir le chemin d’access à un répertoire virtuel, vous devez modifier les chemins d’access si nécessaire.

Server.MapPath

ou

Demander les chemins d’object disponibles

Propriété RequestObject

PhysicalApplicationPath – Retourne le chemin du système de fichiers local de la racine virtuelle pour cette application. c: \ inetpub \ wwwroot \ webstore

PhysicalPath – Renvoie le chemin du système de fichiers local vers le script ou le chemin actuel. c: \ inetpub \ wwwroot \ webstore \ admin \ paths.aspx

Mises à jour

Pour accéder à iis à partir de l’application Windows, passez à travers cet article: Modification de la métabase IIS en C # (For IIs 6.0,5.0)

Server.MapPath ne fonctionne pas dans un environnement d’hébergement partagé. Dans ce cas, vous pouvez utiliser HostingEnvironment.MapPath .