Dimensioni della cartella TEMP predefinita ridotte per un ruolo di lavoro/Web del servizio cloudDefault TEMP folder size is too small on a cloud service web/worker role

La directory temporanea predefinita di un ruolo Web o di lavoro del servizio cloud ha una dimensione massima di 100 MB, che può esaurirsi.The default temporary directory of a cloud service worker or web role has a maximum size of 100 MB, which may become full at some point. Questo articolo descrive come evitare l'esaurimento dello spazio della directory temporanea.This article describes how to avoid running out of space for the temporary directory.

Se il problema riguardante Azure non è trattato in questo articolo, visitare i forum di Azure su MSDN e Stack Overflow.If your Azure issue is not addressed in this article, visit the Azure forums on MSDN and the Stack Overflow. È possibile pubblicare il problema in questi forum o in @AzureSupport su Twitter.You can post your issue in these forums, or post to @AzureSupport on Twitter. È anche possibile inviare una richiesta di supporto tecnico di Azure.You also can submit an Azure support request. Per inviare una richiesta di supporto tecnico, nella pagina Supporto tecnico di Azure selezionare Supporto.To submit a support request, on the Azure support page, select Get support.

Perché ho esaurito lo spazio?Why do I run out of space?

Le variabili di ambiente Windows standard, TEMP e TMP, sono disponibili per il codice in esecuzione nell'applicazione.The standard Windows environment variables TEMP and TMP are available to code that is running in your application. Sia TEMP che TMP puntano a una singola directory con una dimensione massima di 100 MB.Both TEMP and TMP point to a single directory that has a maximum size of 100 MB. Tutti i dati archiviati in questa directory non sono persistenti nel ciclo di vita del servizio cloud. Se le istanze del ruolo in un servizio cloud vengono riciclate, la directory viene pulita.Any data that is stored in this directory is not persisted across the lifecycle of the cloud service; if the role instances in a cloud service are recycled, the directory is cleaned.

Suggerimento per risolvere il problemaSuggestion to fix the problem

Implementare una delle alternative seguenti:Implement one of the following alternatives:

  • Configurare una risorsa di archiviazione locale e accedervi direttamente invece che usando TEMP o TMP.Configure a local storage resource, and access it directly instead of using TEMP or TMP. Per accedere a una risorsa di archiviazione locale dal codice in esecuzione nell'applicazione, chiamare il metodo RoleEnvironment.GetLocalResource .To access a local storage resource from code that is running within your application, call the RoleEnvironment.GetLocalResource method.
  • Configurare una risorsa di archiviazione locale e definire le directory TEMP e TMP in modo che puntino al percorso della risorsa di archiviazione locale.Configure a local storage resource, and point the TEMP and TMP directories to point to the path of the local storage resource. Questa modifica deve essere eseguita nel metodo RoleEntryPoint.OnStart .This modification should be performed within the RoleEntryPoint.OnStart method.

L'esempio di codice seguente illustra come modificare le directory di destinazione per TEMP e TMP nel metodo OnStart:The following code example shows how to modify the target directories for TEMP and TMP from within the OnStart method:

using System;
using Microsoft.WindowsAzure.ServiceRuntime;

namespace WorkerRole1
{
    public class WorkerRole : RoleEntryPoint
    {
        public override bool OnStart()
        {
            // The local resource declaration must have been added to the
            // service definition file for the role named WorkerRole1:
            //
            // <LocalResources>
            //    <LocalStorage name="CustomTempLocalStore"
            //                  cleanOnRoleRecycle="false"
            //                  sizeInMB="1024" />
            // </LocalResources>

            string customTempLocalResourcePath =
            RoleEnvironment.GetLocalResource("CustomTempLocalStore").RootPath;
            Environment.SetEnvironmentVariable("TMP", customTempLocalResourcePath);
            Environment.SetEnvironmentVariable("TEMP", customTempLocalResourcePath);

            // The rest of your startup code goes here…

            return base.OnStart();
        }
    }
}

Passaggi successiviNext steps

Vedere il blog How to increase the size of the Windows Azure Web Role ASP.NET Temporary Folder(Come aumentare le dimensioni della cartella temporanea ASP.NET del ruolo Web di Azure).Read a blog that describes How to increase the size of the Azure Web Role ASP.NET Temporary Folder.

Altri articoli sulla risoluzione dei problemi per i servizi cloud.View more troubleshooting articles for cloud services.

Per informazioni su come risolvere i problemi dei ruoli del servizio cloud usando i dati di diagnostica del computer Azure PaaS, vedere la serie di blog di Kevin Williamson.To learn how to troubleshoot cloud service role issues by using Azure PaaS computer diagnostics data, view Kevin Williamson's blog series.