Domanda

Sto cercando di accedere ai file presenti in una directory che virtuale creata in IIS per la prima volta, ma sto ottenendo risultati strani.

OS: Windows XP Pro

IIS: 5.1

Piattaforma di sviluppo: Visual Studio 2008

Lingua: C #

Directory virtuale Nome: portale

Percorso locale: C: \ digital_communications_report_portal

percorso predefinito web locale: c: \ inetpub \ wwwroot

posso scaricare il file in http: //localhost/portal/testFile.xlsx senza alcuna problema.

I provare uno di questi

string realFilename = Server.MapPath(ResolveUrl("~/portal/testFile.xlsx"));
string realFilename = Server.MapPath(ResolveUrl("localhost/portal/testFile.xlsx"));

e ottenere "C: \ Documents and Settings \ jjohnson \ Documenti \ Visual Studio 2008 \ WebSites \ clientsite \ localhost \ portal \ testFile.xlsx", che è il mio percorso del progetto con il percorso virtuale diede una pacca sulla alla fine e non è un percorso valido. Ho provare a prendere la tilde o localhost e ottenere un "Impossibile mappare il percorso '/portal/testFile.xlsx'." fa eccezione.

Tutte le idee che sto facendo male?

È stato utile?

Soluzione

Se non mi sbaglio, Server.MapPath(ResolveUrl("~/relative/path/to/file")) non è ciò che si desidera. Si produrrà un /rooted/path/to/file che, quando passò ai Server.MapPath() non produrrà un percorso valido.

Invece semplicemente utilizzare Server.MapPath("~/relative/path/to/file");

Aggiorna

Il problema riscontrato è dovuto al fatto che si includono il nome virtuale di directory ( "portale") nel vostro URL relativo. L'URL relativo non ha bisogno di specificare il nome della directory virtuale, solo il percorso del file relativo desiderato alla radice dell'applicazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top