2012-07-27 33 views
7

Zainstalowałem aplikację mvc-3 na Windows Azure. W mojej aplikacji ładuję plik i zapisuję go w folderze App_Data/DownloadedTemplates.Nie można znaleźć części ścieżki w systemie Windows Azure

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

Moja aplikacja działa obecnie w środowisku pomostowym. Kiedy dodany plik, to pokazuje mi wyjątek w przeglądarce:

nie można odnaleźć części ścieżki „F: \ sitesroot \ 0 \ App_Data \ DownloadedTemplates \ B.htm_2c77cdfd-c597-4234-bd1e-29ca0a9b8d0e .htm ".

Używam Server.MapPath, aby zlokalizować ścieżkę App_Data na serwerze, teraz dlaczego ten wyjątek?. Czy ktoś może mi powiedzieć o problemie?

+1

Czy aplikacja App-Data i folder DownloadedTemplates istnieją na serwerze? nie są tworzone automatycznie. –

+0

Tak, kiedy wdrażałem mój projekt, był on w moim projekcie –

Odpowiedz

7

Nie powinieneś robić tego w aplikacji Windows Azure. W Windows Azure powinieneś użyć LocalResources (zarezerwowanego miejsca na dysku dedykowanym) do zapisywania plików tymczasowych na dysku, jest to jedyne miejsce, w którym należy przechowywać dane.

Oto przykład, jak można uzyskać dostęp do takiej LocalResource (nazwa i rozmiar może być skonfigurowany w projekcie VS):

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

nie zapominać, że dane w LocalResources może zniknąć (gdy maszyna awarie na przykład). Jeśli naprawdę chcesz utrwalić swoje dane, powinieneś używać Windows Blob Storage.

Powiązane problemy