2012-07-27 14 views
7

Ho distribuito l'applicazione mvc-3 su Windows Azure. Nella mia applicazione sto caricando il file e salvalo nella cartella App_Data/DownloadedTemplates.Impossibile trovare una parte del percorso su Windows Azure

var path = Server.MapPath("~App_Data/DownloadedTemplates"); 

mia applicazione è in esecuzione su messa in scena ambiente attualmente. Quando ho caricato il file, mi mostra un'eccezione nel browser:

Impossibile trovare una parte del percorso 'F: \ sitesroot \ 0 \ App_Data \ DownloadedTemplates \ B.htm_2c77cdfd-c597-4234-bd1e-29ca0a9b8d0e htm'.

Sto utilizzando Server.MapPath per individuare il percorso di App_Data sul server, ora perché questa eccezione ?. Qualcuno può dirmi il problema?

+1

fare App-Data e la cartella DownloadedTemplates esistono sul server? non vengono creati automaticamente. –

+0

sì, quando stavo distribuendo il mio progetto era nel mio progetto –

risposta

7

Non si dovrebbe fare questo in un'applicazione Windows Azure. In Windows Azure è necessario utilizzare LocalResources (spazio riservato su un disco dedicato) per salvare i file temporanei sul disco, questo è l'unico posto in cui è necessario memorizzare i dati.

Ecco un esempio di come si potrebbe accedere a tale LocalResource (nome e le dimensioni possono essere configurati nel progetto VS):

LocalResource localResource = RoleEnvironment.GetLocalResource("DownloadedTemplates"); 

Non dimenticate che i dati in LocalResources potrebbero scomparire (quando la macchina si blocca ad esempio). Se vuoi davvero mantenere i tuoi dati, dovresti utilizzare Windows Azure Blob Storage.

Problemi correlati