So che posso ottenere WebRoot da HostingEnvironment (spazio dei nomi Microsoft.AspNet.Hosting).Come mappare il percorso virtuale sul percorso fisico?
Ho bisogno di ottenere un percorso fisico in base a un percorso virtuale creato in IIS all'interno della mia applicazione web. In IIS, la radice del sito Web punta a wwwroot del mio sito pubblicato e vi è una directory virtuale aggiunta in IIS che punta a una cartella esterna al mio wwwroot. Spero di poter ottenere il percorso fisico di quella directory virtuale . In MVC 5 o versione precedente, posso utilizzare HostingEnvironment.MapPath (spazio dei nomi System.Web) o Server.MapPath, cosa devo fare in MVC 6?
EDIT:
Non è il percorso virtuale, ma la directory virtuale aggiunto in IIS. Spero di poter ottenere il percorso fisico di quella directory virtuale. Penso che la directory virtuale sia una caratteristica particolare di IIS, che assomiglia a un percorso secondario di un percorso virtuale completo ma può essere una cartella al di fuori della cartella radice Web fisica.
4 ottobre 2015
Fare riferimento alla this issue in ASP.NET 5 Hosting repo, finora, non sembra che possiamo ottenere il percorso fisico di una directory virtuale in IIS.
Non penso di poter ottenere una directory virtuale definita in IIS in questo modo. ApplicationBasePath indica il percorso root del mio 'wwwroot', ma la directory virtuale può essere completamente diversa dal mio wwwroot sebbene l'url della directory virtuale assomigli a una sottocartella del mio sito web. – Ricky
'IApplicationEnvironment.ApplicationBasePath' è esattamente la direzione fisica della root dell'applicazione (non wwwroot di IIS). È una directory con project.json dell'app. 'IHostingEnvironment.WebRoot' è una sottodirectory di ApplicationBasePath per il webroot - è una directory specificata nell'app project.json come' webroot'. Per un esempio è una directory da cui StaticFilesMiddleware serve i file. – Shrike