Aracılığıyla paylaş


Bulut hizmeti (klasik) web/çalışan rolünde varsayılan TEMP klasör boyutu çok küçük

Önemli

Cloud Services (klasik), 1 Eylül 2024 itibarıyla tüm müşteriler için kullanım dışı bırakılmıştır. Mevcut tüm çalışan dağıtımlar Microsoft tarafından durdurulacak ve kapatılacak ve Veriler Ekim 2024'den itibaren kalıcı olarak kaybolacaktır. Yeni dağıtımlarda yeni Azure Resource Manager tabanlı dağıtım modeli Azure Cloud Services (genişletilmiş destek) kullanılmalıdır.

Bir bulut hizmeti çalışanının veya web rolünün varsayılan geçici dizininin boyutu en fazla 100 MB'tır ve bir noktada dolabilir. Bu makalede, geçici dizinde yer kalmamasının nasıl önlediği açıklanır.

Azure sorununuz bu makalede ele alınmıyorsa Microsoft Q & A ve Stack Overflow'daki Azure forumlarını ziyaret edin. Sorununuzu bu forumlara gönderebilir veya Twitter'da @AzureSupport gönderebilirsiniz. Ayrıca bir Azure desteği isteği gönderebilirsiniz. Destek isteği göndermek için Azure desteği sayfasında Destek al'ı seçin.

Neden alanım tükensin?

Temp ve TMP standart Windows ortam değişkenleri, uygulamanızda çalışan kodlar için kullanılabilir. Hem TEMP hem de TMP, boyutu en fazla 100 MB olan tek bir dizine işaret etti. Bu dizinde depolanan veriler bulut hizmetinin yaşam döngüsü boyunca kalıcı olmaz. Bir bulut hizmetindeki rol örnekleri geri dönüştürülürse, dizin temizlenir.

Sorunu düzeltme önerisi

Aşağıdaki alternatiflerden birini uygulayın:

  • Yerel bir depolama kaynağı yapılandırın ve TEMP veya TMP kullanmak yerine doğrudan erişin. Uygulamanızın içinde çalışan koddan yerel bir depolama kaynağına erişmek için RoleEnvironment.GetLocalResource yöntemini çağırın.
  • Yerel bir depolama kaynağı yapılandırın ve TEMP ve TMP dizinlerini yerel depolama kaynağının yoluna işaret edin. Bu değişiklik RoleEntryPoint.OnStart yönteminde gerçekleştirilmelidir.

Aşağıdaki kod örneğinde, Temp ve TMP için hedef dizinlerin OnStart yönteminden nasıl değiştirileceği gösterilmektedir:

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

Sonraki adımlar

Azure Web Rolü ASP.NET Geçici Klasörünün boyutunu artırmayı açıklayan bir blog okuyun.

Bulut hizmetleri için diğer sorun giderme makalelerini görüntüleyin.

Azure PaaS bilgisayar tanılama verilerini kullanarak bulut hizmeti rolü sorunlarını gidermeyi öğrenmek için Kevin Williamson'ın blog serisini görüntüleyin.