Delen via


Standaardgrootte temp-map is te klein voor een web-/werkrol in een cloudservice (klassiek)

Belangrijk

Cloud Services (klassiek) is vanaf 1 september 2024 afgeschaft voor alle klanten. Bestaande actieve implementaties worden gestopt en afgesloten door Microsoft en de gegevens gaan vanaf oktober 2024 permanant verloren. Nieuwe implementaties moeten gebruikmaken van het nieuwe op Azure Resource Manager gebaseerde implementatiemodel Azure Cloud Services (uitgebreide ondersteuning).

De standaard tijdelijke map van een cloudservicemedewerker of webrol heeft een maximale grootte van 100 MB, die op een bepaald moment vol kan raken. In dit artikel wordt beschreven hoe u geen ruimte meer hebt voor de tijdelijke map.

Als uw Azure-probleem niet wordt opgelost in dit artikel, gaat u naar de Azure-forums op Microsoft Q & A en Stack Overflow. U kunt uw probleem posten in deze forums of posten op @AzureSupport op Twitter. U kunt ook een Azure-ondersteuningsaanvraag indienen. Als u een ondersteuningsaanvraag wilt indienen, selecteert u op de pagina Azure-ondersteuning Ondersteuning krijgen.

Waarom heb ik geen ruimte meer?

De standaard windows-omgevingsvariabelen TEMP en TMP zijn beschikbaar voor code die wordt uitgevoerd in uw toepassing. Zowel TEMP als TMP verwijzen naar één map met een maximale grootte van 100 MB. Gegevens die in deze map zijn opgeslagen, blijven niet behouden gedurende de levenscyclus van de cloudservice. Als de rolinstanties in een cloudservice worden gerecycled, wordt de map opgeschoond.

Suggestie om het probleem op te lossen

Implementeer een van de volgende alternatieven:

  • Configureer een lokale opslagresource en open deze rechtstreeks in plaats van TEMP of TMP te gebruiken. Als u toegang wilt krijgen tot een lokale opslagresource vanuit code die in uw toepassing wordt uitgevoerd, roept u de methode RoleEnvironment.GetLocalResource aan.
  • Configureer een lokale opslagresource en wijs de TEMP- en TMP-mappen aan om naar het pad van de lokale opslagresource te verwijzen. Deze wijziging moet worden uitgevoerd in de methode RoleEntryPoint.OnStart .

In het volgende codevoorbeeld ziet u hoe u de doelmappen voor TEMP en TMP kunt wijzigen vanuit de OnStart-methode:

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

Volgende stappen

Lees een blog waarin wordt beschreven hoe u de grootte van de Azure-webrol ASP.NET tijdelijke map kunt vergroten.

Bekijk meer artikelen over probleemoplossing voor cloudservices.

Bekijk de blogreeks van Kevin Williamson voor meer informatie over het oplossen van problemen met cloudservicerollen met behulp van diagnostische gegevens van Azure PaaS-computers.