Standardstorleken för TEMP-mappen är för liten för en webb-/arbetsroll för en molntjänst (klassisk)

Viktigt!

Cloud Services (klassisk) är nu inaktuellt för nya kunder och kommer att dras tillbaka den 31 augusti 2024 för alla kunder. Nya distributioner bör använda den nya Azure Resource Manager-baserade distributionsmodellen Azure Cloud Services (utökad support).

Den tillfälliga standardkatalogen för en molntjänstarbetare eller webbroll har en maximal storlek på 100 MB, som kan bli full någon gång. Den här artikeln beskriver hur du undviker att få slut på utrymme för den tillfälliga katalogen.

Om ditt Azure-problem inte åtgärdas i den här artikeln går du till Azure-forumen på Microsoft Q &A och Stack Overflow. Du kan publicera ditt problem i dessa forum eller publicera till @AzureSupport på Twitter. Du kan också skicka en Azure-supportbegäran. Om du vill skicka en supportbegäran går du till azure-supportsidan och väljer Hämta support.

Varför får jag slut på utrymme?

Standardvariablerna TEMP och TMP för Windows-miljön är tillgängliga för kod som körs i ditt program. Både TEMP och TMP pekar på en enda katalog som har en maximal storlek på 100 MB. Data som lagras i den här katalogen sparas inte under molntjänstens livscykel. Om rollinstanserna i en molntjänst återvinns rensas katalogen.

Förslag för att åtgärda problemet

Implementera något av följande alternativ:

  • Konfigurera en lokal lagringsresurs och få åtkomst till den direkt i stället för att använda TEMP eller TMP. Om du vill komma åt en lokal lagringsresurs från kod som körs i ditt program anropar du metoden RoleEnvironment.GetLocalResource .
  • Konfigurera en lokal lagringsresurs och peka temp- och TMP-katalogerna så att de pekar på sökvägen till den lokala lagringsresursen. Den här ändringen bör utföras i metoden RoleEntryPoint.OnStart .

I följande kodexempel visas hur du ändrar målkatalogerna för TEMP och TMP från metoden OnStart:

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();
        }
    }
}

Nästa steg

Läs en blogg som beskriver Hur du ökar storleken på azure-webbrollen ASP.NET tillfällig mapp.

Visa fler felsökningsartiklar för molntjänster.

Om du vill lära dig hur du felsöker problem med molntjänstrollen med hjälp av Azure PaaS-datordiagnostikdata kan du läsa Kevin Williamsons bloggserie.