Megosztás a következőn keresztül:


Az alapértelmezett TEMP-mappaméret túl kicsi egy felhőszolgáltatás (klasszikus) webes/feldolgozói szerepkörén

Fontos

A Cloud Services (klasszikus) 2024. szeptember 1-étől minden ügyfél számára elavult. A Microsoft leállítja és megszünteti a meglévő futó telepítéseket, és az adatok 2024 októberétől végleg elvesznek. Az új üzemelő példányoknak az Azure Cloud Services új Azure Resource Manager-alapú üzemi modelljét (kiterjesztett támogatás) kell használniuk.

A felhőszolgáltatás-feldolgozó vagy webszerepkör alapértelmezett ideiglenes könyvtárának maximális mérete 100 MB, ami valamikor megtelhet. Ez a cikk azt ismerteti, hogyan kerülheti el, hogy az ideiglenes könyvtárban ne fogyjon el a szabad hely.

Miért fogy el a hely?

Az alkalmazásban futó kódhoz a TEMP és a TMP standard Windows-környezeti változók érhetők el. Mind a TEMP, mind a TMP egyetlen könyvtárra mutat, amelynek maximális mérete 100 MB. A címtárban tárolt adatok nem maradnak meg a felhőszolgáltatás életciklusa során. Ha a felhőszolgáltatás szerepkörpéldányai újrafeldolgozva vannak, a címtár törlődik.

Javaslat a probléma megoldására

Hajtsa végre az alábbi alternatívák egyikét:

  • Konfiguráljon egy helyi tárolóerőforrást, és közvetlenül érje el a TEMP vagy a TMP használata helyett. Ha az alkalmazásban futó kódból szeretne hozzáférni egy helyi tárolóerőforráshoz, hívja meg a RoleEnvironment.GetLocalResource metódust .
  • Konfiguráljon egy helyi tárolási erőforrást, és irányítsa a TEMP és TMP könyvtárakat úgy, hogy azok a helyi tárolási erőforrás elérési útjára mutassanak. Ezt a módosítást a RoleEntryPoint.OnStart metóduson belül kell végrehajtani.

Az alábbi példakód bemutatja, hogyan módosíthatja a TEMP és a TMP célkönyvtárait az OnStart metóduson belül:

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

Következő lépések

Olvassa el az Azure Web Role ASP.NET ideiglenes mappa méretének növelését ismertető blogot.

További hibaelhárítási cikkek a felhőszolgáltatásokról.

Ha szeretné megtudni, hogyan háríthatja el a felhőszolgáltatás szerepköreivel kapcsolatos problémákat az Azure PaaS számítógépdiagnosztikai adataival, tekintse meg Kevin Williamson blogsorozatát.