Aracılığıyla paylaş


Azure Dosyalar bağlantı ve erişim sorunlarını giderme (SMB)

Bu makalede, Windows veya Linux istemcilerinden Sunucu İleti Bloğu (SMB) Azure dosya paylaşımlarına bağlanmaya ve bunlara erişmeye çalıştığınızda oluşabilecek yaygın sorunlar listelenir. Ayrıca bu sorunların olası nedenleri ve çözümleri de sağlanır.

Not

Bu makale yardımcı oldu mu? Girdileriniz bizim için önemlidir. Bu makalenin sizin için ne kadar iyi çalıştığını veya nasıl geliştirebileceğimizi bize bildirmek için lütfen bu sayfadaki Geri Bildirim düğmesini kullanın.

Önemli

Bu makale yalnızca SMB paylaşımları için geçerlidir. Ağ Dosya Sistemi (NFS) paylaşımlarıyla ilgili ayrıntılar için bkz . Azure NFS dosya paylaşımlarında sorun giderme.

Şunlara uygulanır

Dosya paylaşımı türü SMB NFS
Standart dosya paylaşımları (GPv2), LRS/ZRS
Standart dosya paylaşımları (GPv2), GRS/GZRS
Premium dosya paylaşımları (filestorage), LRS/ZRS

Azure dosya paylaşımına bağlanılamıyor veya bağlanılamıyor

Azure dosya paylaşımlarına erişmek için kullandığınız istemci işletim sistemine bağlı olarak Windows veya Linux sekmesini seçin.

Windows'ta bir Azure dosya paylaşımına bağlanmaya çalıştığınızda aşağıdaki hata mesajlarını alabilirsiniz.

Azure dosya paylaşımını bağlarken hata 5

  • Sistem hatası 5 oluştu. Erişim reddedildi.

Neden 1: Şifrelenmemiş iletişim kanalı

Güvenlik için, iletişim kanalı şifrelenmemişse ve bağlantı girişimi Azure dosya paylaşımlarının bulunduğu veri merkezinden yapılmıyorsa Azure dosya paylaşımlarına bağlantılar engellenir. Depolama hesabında Güvenli aktarım gerekli ayarı etkinleştirildiyse, aynı veri merkezi içindeki şifrelenmemiş bağlantılar da engellenir. Şifrelenmiş bir iletişim kanalının sağlanabilmesi için son kullanıcının istemci işletim sistemi SMB şifrelemesini desteklemelidir.

Her sistemin Windows 8, Windows Server 2012 ve sonraki sürümleri SMB 3 içeren istekleri kabul eder.şifrelemeyi destekleyen x.

Neden 1 için çözüm

  1. SMB şifrelemesini destekleyen bir istemciden bağlanın (Windows 8/Windows Server 2012 veya üzeri).
  2. Azure dosya paylaşımı için kullanılan Azure depolama hesabıyla aynı veri merkezindeki bir sanal makineden (VM) bağlanın.
  3. İstemci SMB şifrelemesini desteklemiyorsa depolama hesabında Güvenli aktarım gerekli ayarının devre dışı bırakıldığını doğrulayın.

Neden 2: Depolama hesabında sanal ağ veya güvenlik duvarı kuralları etkinleştirildi

İstemci IP adresi veya sanal ağ izin verilenler listesinde yer almadığı sürece, depolama hesabında sanal ağ (VNET) ve güvenlik duvarı kuralları yapılandırılmışsa ağ trafiği reddedilir.

Neden 2 için çözüm

Depolama hesabında sanal ağ ve güvenlik duvarı kurallarının düzgün yapılandırıldığını doğrulayın. Sanal ağ veya güvenlik duvarı kurallarının soruna neden olup olmadığını test etmek için depolama hesabında Tüm ağlardan erişime izin ver ayarını geçici olarak değiştirin. Daha fazla bilgi edinmek için bkz. Azure Depolama güvenlik duvarlarını ve sanal ağları yapılandırma.

Neden 3: Kimlik tabanlı kimlik doğrulaması kullanırken paylaşım düzeyindeki izinler yanlıştır

Kullanıcılar Active Directory (AD) veya Microsoft Entra Domain Services kimlik doğrulamasını kullanarak Azure dosya paylaşımına erişiyorsa, paylaşım düzeyindeki izinlerin yanlış olması durumunda dosya paylaşımına erişim "Erişim reddedildi" hatasıyla başarısız olur.

Neden 3 için çözüm

İzinlerin doğru yapılandırıldığını doğrulayın:

  • Active Directory Etki Alanı Hizmetleri (AD DS) bkz. Paylaşım düzeyi izinleri atama.

    Paylaşım düzeyi izin atamaları, Microsoft Entra Connect Sync veya Microsoft Entra Connect bulut eşitlemesi kullanılarak AD DS'den Microsoft Entra Id'ye eşitlenen gruplar ve kullanıcılar için desteklenir. Paylaşım düzeyi izinlerine atanan grupların ve kullanıcıların desteklenmeyen "yalnızca bulut" grupları olmadığını onaylayın.

  • Microsoft Entra Etki Alanı Hizmetleri Paylaşım düzeyinde izinler atama bölümüne bakın.

Azure dosya paylaşımını bağladığınızda veya çıkardığınızda hata 53, Hata 67 veya Hata 87

Şirket içinden veya farklı bir veri merkezinden dosya paylaşımı bağlamayı denediğinizde aşağıdaki hataları alabilirsiniz:

  • Sistem hatası 53 oluştu. Ağ yolu bulunamadı.
  • Sistem hatası 67 oluştu. Ağ adı bulunamıyor.
  • Sistem hatası 87 oluştu. Parametre yanlış.

Neden 1: Bağlantı noktası 445 engellendi

Azure Dosyalar veri merkezine 445 numaralı bağlantı noktasından giden iletişim engellenirse sistem hatası 53 veya sistem hatası 67 oluşabilir. 445 numaralı bağlantı noktasından erişime izin veren veya erişimi engelleyen ISP'lerin özetini görmek için TechNet'e gidin.

Güvenlik duvarının veya ISP'nin 445 numaralı bağlantı noktasını engelleyip engellemediğini denetlemek için AzFileDiagnostics aracını veya Test-NetConnection cmdlet'ini kullanın.

Test-NetConnection cmdlet'ini kullanmak için Azure PowerShell modülünün yüklü olması gerekir. Daha fazla bilgi için Azure Az PowerShell modülünü yükleme bölümüne bakın. <your-storage-account-name> ile <your-resource-group-name> yerine depolama hesabınızla ilgili bilgileri yazmayı unutmayın.

$resourceGroupName = "<your-resource-group-name>"
$storageAccountName = "<your-storage-account-name>"

# This command requires you to be logged into your Azure account and set the subscription your storage account is under, run:
# Connect-AzAccount -SubscriptionId 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
# if you haven't already logged in.
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName

# The ComputerName, or host, is <storage-account>.file.core.windows.net for Azure Public Regions.
# $storageAccount.Context.FileEndpoint is used because non-Public Azure regions, such as sovereign clouds
# or Azure Stack deployments, will have different hosts for Azure file shares (and other storage resources).
Test-NetConnection -ComputerName ([System.Uri]::new($storageAccount.Context.FileEndPoint).Host) -Port 445

Bağlantı başarılı olursa şu çıktıyı görmeniz gerekir:

ComputerName     : <your-storage-account-name>
RemoteAddress    : <storage-account-ip-address>
RemotePort       : 445
InterfaceAlias   : <your-network-interface>
SourceAddress    : <your-ip-address>
TcpTestSucceeded : True

Not

Bu komut, depolama hesabının geçerli IP adresini döndürür. Bu IP adresinin aynı kalacağı garanti edilmez ve bu adres herhangi bir zamanda değişebilir. Bu IP adresini herhangi bir betikte veya güvenlik duvarı yapılandırmasında sabit kodlamayın.

Neden 1 için çözümler

Çözüm 1 — QUIC uç noktası olarak Azure Dosya Eşitleme kullanın 445 numaralı bağlantı noktası engellenen istemcilerden Azure Dosyalar erişmek için geçici çözüm olarak Azure Dosya Eşitleme kullanabilirsiniz. Azure Dosyalar QUIC üzerinden SMB'yi doğrudan desteklemese de Windows Server 2022 Azure Edition, QUIC protokollerini destekler. Azure Dosya Eşitleme kullanarak Windows Server 2022 Azure Edition VM'sinde Azure dosya paylaşımlarınızın basit bir önbelleğini oluşturabilirsiniz. Bu yapılandırma, 445 numaralı bağlantı noktası yerine HTTPS'yi desteklemek için yaygın olarak açık olan 443 numaralı bağlantı noktasını kullanır. Bu seçenek hakkında daha fazla bilgi edinmek için bkz. Azure Dosya Eşitleme ile QUIC üzerinden SMB.

Çözüm 2 — VPN veya ExpressRoute kullanma Şirket içinden Azure depolama hesabınıza bir sanal özel ağ (VPN) veya ExpressRoute ayarlayarak, özel uç noktaları kullanan Azure Dosyalar iç ağınızda kullanıma sunulduğundan, trafik İnternet üzerinden değil güvenli bir tünelden geçer. Windows'tan Azure Dosyalar erişmek için VPN ayarlamak için yönergeleri izleyin.

Çözüm 3 — ISS/BT yöneticinizin yardımıyla 445 numaralı bağlantı noktasının engelini kaldırın. Azure IP aralıklarına giden 445 numaralı bağlantı noktasını açmak için BT departmanınızla veya ISS'nizle birlikte çalışın.

Çözüm 4 — Depolama Gezgini veya PowerShell gibi REST API tabanlı araçları kullanın Azure Dosyalar SMB'ye ek olarak REST'i de destekler. REST erişimi, 443 numaralı bağlantı noktası üzerinden (standart TCP) çalışır. Rest API kullanılarak yazılan ve zengin bir kullanıcı arabirimi deneyimi sağlayan çeşitli araçlar vardır. Depolama Gezgini bunlardan biridir. Depolama Gezgini'ni indirip yükleyerek Azure Dosyalar destekli dosya paylaşımınıza bağlanın. REST API de kullanan PowerShell'i de kullanabilirsiniz.

Neden 2: NTLMv1 etkinleştirildi

İstemcide NTLMv1 iletişimi etkinleştirildiyse sistem hatası 53 veya sistem hatası 87 oluşabilir. Azure Dosyalar yalnızca NTLMv2 kimlik doğrulamasını destekler. NTLMv1'in etkinleştirilmesi daha az güvenli bir istemci oluşturur. Bu nedenle Azure Dosyalar için iletişim engellenir.

Hatanın nedeninin bu olup olmadığını belirlemek için aşağıdaki kayıt defteri alt anahtarının 3'ten küçük bir değere ayarlı olmadığını doğrulayın:

HKLM\SYSTEM\CurrentControlSet\Control\Lsa > LmCompatibilityLevel

Daha fazla bilgi için TechNet'te LmCompatibilityLevel konusuna bakın.

Neden 2 için çözüm

Aşağıdaki kayıt defteri alt anahtarında LmCompatibilityLevel değerini, varsayılan değeri olan 3'e döndürün:

HKLM\SYSTEM\CurrentControlSet\Control\Lsa

Hata kodu 0x800704b3 başarısız oldu

Azure dosya paylaşımını bağlamaya çalıştığınızda aşağıdaki hatayı alırsınız:

Hata kodu: 0x800704b3
Sembolik Ad: ERROR_NO_NET_OR_BAD_PATH
Hata açıklaması: Ağ yolu yanlış yazıldı, yok veya ağ sağlayıcısı şu anda kullanılamıyor. Lütfen yolu yeniden yazmayı deneyin veya ağ yöneticinize başvurun.

Neden

Bu hata, bu ağ hizmetlerine açıkça bağımlı olan herhangi bir hizmet başlatılamayacağı için Windows ağıyla ilgili temel hizmetler devre dışı bırakılırsa oluşabilir.

Çözüm

Aşağıdaki hizmetlerden herhangi birinin Windows VM'de Durduruldu durumunda olup olmadığını denetleyin:

  • Ağ Bağlantıları
  • Ağ Listesi Hizmeti
  • Ağ Konumu Tanıma
  • Ağ Deposu Arabirim Hizmeti
  • DHCP İstemcisi
  • TCP/IP NetBIOS Yardımcısı
  • İş istasyonu

Herhangi bir hizmet bulursanız, hizmetleri başlatın ve Azure dosya paylaşımını bağlamayı yeniden deneyin.

Uygulama veya hizmet bağlı bir Azure Dosyalar sürücüsüne erişemiyor

Neden

Sürücüler kullanıcı başına bağlanır. Uygulamanız veya hizmetiniz sürücüyü takan hesaptan farklı bir kullanıcı hesabı altında çalışıyorsa, uygulama sürücüyü görmez.

Çözüm

Şu çözümlerden birini kullanın:

  • Sürücüyü, uygulamayı içeren aynı kullanıcı hesabından bağlayın. PsExec gibi bir araç kullanabilirsiniz.

  • Komutun kullanıcı adı ve parola parametrelerinde net use depolama hesabı adını ve anahtarını geçirin.

  • cmdkey Kimlik bilgilerini Kimlik Bilgileri Yöneticisi'ne eklemek için komutunu kullanın. Bu eylemi, etkileşimli oturum açma veya kullanarak runashizmet hesabı bağlamı altındaki bir komut satırından gerçekleştirin.

    cmdkey /add:<storage-account-name>.file.core.windows.net /user:AZURE\<storage-account-name> /pass:<storage-account-key>
    
  • Eşlenmiş sürücü harfi kullanmadan paylaşımı doğrudan eşleyin. Bazı uygulamalar sürücü harfine düzgün şekilde yeniden bağlanamayabilir, bu nedenle tam UNC yolunu kullanmak daha güvenilir olabilir:

    net use * \\storage-account-name.file.core.windows.net\share

Bu yönergeleri izledikten sonra, sistem/ağ hizmet hesabı için net use komutunu çalıştırdığınızda şu hata iletisini alabilirsiniz: "Sistem hatası 1312 oluştu. Belirtilen oturum açma oturumu mevcut değil. Zaten sonlandırılmış olabilir." Bu hata görüntülenirse, geçirilen net use kullanıcı adının etki alanı bilgilerini içerdiğinden emin olun (örneğin: [storage account name].file.core.windows.net).

"Bilgisayarım" veya "Bu Bilgisayar" içinde sürücü harfi olan klasör yok

Komutunu kullanarak bir Azure dosya paylaşımını net use yönetici olarak eşlerseniz, paylaşım eksik gibi görünür.

Neden

Varsayılan olarak, Windows Dosya Gezgini yönetici olarak çalışmaz. Bir yönetici komut isteminden çalıştırırsanız net use , ağ sürücüsünü yönetici olarak eşlersiniz. Eşlenen sürücüler kullanıcı odaklı olduğundan, oturum açmış olan kullanıcı hesabı farklı bir kullanıcı hesabı altında takılıysa sürücüleri görüntülemez.

Çözüm

Paylaşımı yönetici olmayan bir komut satırından bağlayın. Alternatif olarak, kayıt defteri değerini yapılandırmak EnableLinkedConnections için bu TechNet konusunu izleyebilirsiniz.

Depolama hesabında eğik çizgi olduğunda net use komutu başarısız oluyor

Neden

Komut, net use eğik çizgiyi (/) komut satırı seçeneği olarak yorumlar. Kullanıcı hesabınızın adı eğik çizgiyle başlıyorsa sürücü eşlemesi başarısız olur.

Çözüm

Sorunu geçici olarak çözmek için aşağıdaki adımlardan birini kullanabilirsiniz:

  • Aşağıdaki PowerShell komutunu çalıştırın:

    New-SmbMapping -LocalPath y: -RemotePath \\server\share -UserName accountName -Password "password can contain / and \ etc"
    

    Bir toplu iş dosyasından komutunu şu şekilde çalıştırabilirsiniz:

    Echo new-smbMapping ... | powershell -command –

  • Eğik çizgi ilk karakter değilse, bu soruna geçici bir çözüm olarak anahtarın çevresine çift tırnak işareti koyun. Bu durumda, etkileşimli modu kullanın ve parolanızı ayrı olarak girin veya eğik çizgiyle başlamayan bir anahtar almak için anahtarlarınızı yeniden üretin.

New-PSDrive komutu "ağ kaynak türü doğru değil" hatasıyla başarısız oluyor

Neden

Dosya paylaşımına erişilemiyorsa bu hata iletisini görebilirsiniz. Örneğin, 445 numaralı bağlantı noktası engellendi veya bir DNS çözümleme sorunu var.

Çözüm

Bağlantı noktası 445'in açık olduğundan emin olun ve DNS çözümlemesini ve dosya paylaşımınıza bağlantıyı denetleyin.

Azure dosya paylaşımına erişilemiyor, dosya paylaşımı değiştirilemiyor veya silinemiyor (veya anlık görüntü paylaşılamıyor)

Müşteri tarafından başlatılan yük devretme işleminden sonra "Kullanıcı adı veya parola yanlış" hatası

Coğrafi olarak yedekli depolama hesaplarıyla müşteri tarafından başlatılan bir yük devretme senaryosunda, dosya tanıtıcıları ve kiralar yük devretme sırasında korunmaz. İstemciler dosya paylaşımlarını çıkarmalı ve yeniden bağlamalıdır.

Azure dosya paylaşımına erişmeye veya silmeye çalıştığınızda "Erişim yok" hatası

Azure portalını kullanarak bir Azure dosya paylaşımına erişmeye veya silmeye çalıştığınızda aşağıdaki hatayı alabilirsiniz:

Erişim yok Hata kodu: 403

Neden 1: Depolama hesabında sanal ağ veya güvenlik duvarı kuralları etkinleştirildi

Neden 1 için çözüm

Depolama hesabında sanal ağ ve güvenlik duvarı kurallarının düzgün yapılandırıldığını doğrulayın. Soruna sanal ağ veya güvenlik duvarı kurallarının neden olup olmadığını test etmek için depolama hesabındaki ayarı geçici olarak Tüm ağlardan erişime izin ver olarak değiştirin. Daha fazla bilgi edinmek için bkz. Azure Depolama güvenlik duvarlarını ve sanal ağları yapılandırma.

Neden 2: Kullanıcı hesabınızın depolama hesabına erişimi yok

Neden 2 için çözüm

Azure dosya paylaşımının bulunduğu depolama hesabına göz atın, Erişim denetimi (IAM) öğesini seçin ve kullanıcı hesabınızın depolama hesabına erişimi olduğunu doğrulayın. Daha fazla bilgi edinmek için bkz . Azure rol tabanlı erişim denetimi (Azure RBAC) ile depolama hesabınızın güvenliğini sağlama.

Dosya kilitleri ve kiralar

Azure dosya paylaşımını veya anlık görüntüsünü değiştiremiyor veya silemiyorsanız, bunun nedeni dosya kilitleri veya kiralamalar olabilir. Azure Dosyalar, Azure dosya paylaşımlarının yanlışlıkla değiştirilmesini veya silinmesini önlemenin ve anlık görüntüleri paylaşmanın iki yolunu sağlar:

  • Depolama hesabı kaynak kilitleri: Depolama hesabı da dahil olmak üzere tüm Azure kaynakları kaynak kilitlerini destekler. Kilitler bir yönetici veya Azure Backup gibi hizmetler tarafından depolama hesabına konulabilir. İki kaynak kilidi varyasyonu vardır: depolama hesabında ve kaynaklarında yapılan tüm değişiklikleri engelleyen değiştirme ve silme, yalnızca depolama hesabının ve kaynaklarının silinmesini engeller. Kaynak sağlayıcısı aracılığıyla Microsoft.Storage paylaşımları değiştirirken veya silerken, Azure dosya paylaşımlarında ve paylaşım anlık görüntülerinde kaynak kilitleri zorlanır. Çoğu portal işlemi, Azure Dosyalar Rm için Azure PowerShell cmdlet'leri (örneğin, Get-AzRmStorageShare) ve komut grubundaki share-rm Azure CLI komutları (örneğin, az storage share-rm list) kaynak sağlayıcısını Microsoft.Storage kullanır. Depolama Gezgini, eski Azure Dosyalar PowerShell yönetim cmdlet'leri Rm Get-AzStorageShareve komut grubu altındaki share eski Azure Dosyalar CLI komutları (örneğin, ) gibi bazı araçlar ve yardımcı programlar, az storage share listFileREST API'sinde kaynak sağlayıcısını ve kaynak kilitlerini atlayan Microsoft.Storage eski API'leri kullanır. FileREST API'sinde kullanıma sunulan eski yönetim API'leri hakkında daha fazla bilgi için bkz. Azure Dosyalar denetim düzlemi.

  • Paylaşım/paylaşım anlık görüntü kiralamaları: Paylaşım kiralamaları, Azure dosya paylaşımları ve dosya paylaşımı anlık görüntüleri için bir tür özel kilittir. Kiralar, api'yi bir betik aracılığıyla veya Azure Backup gibi katma değerli hizmetler aracılığıyla çağırarak yöneticiler tarafından tek tek Azure dosya paylaşımlarına veya dosya paylaşımı anlık görüntülerine yerleştirilebilir. Kira bir Azure dosya paylaşımına veya dosya paylaşımı anlık görüntüsüne yerleştirildiğinde, dosya paylaşımı/paylaşım anlık görüntüsünü değiştirmek veya silmek kiralama kimliğiyle yapılabilir. Yöneticiler ayrıca kiralama kimliğini gerektiren değişiklik işlemlerinden önce kirayı serbest bırakabilir veya kira kimliğini gerektirmeyen kirayı bozabilir. Paylaşım kiralamaları hakkında daha fazla bilgi için bkz . kira paylaşımı.

Kaynak kilitleri ve kiralar, depolama hesabınızda/Azure dosya paylaşımlarınızda hedeflenen yönetici işlemlerine engel olabileceği için, kaynaklarınıza el ile veya Azure Backup gibi katma değerli hizmetler tarafından otomatik olarak eklenen kaynak kilitlerini/kiralarını kaldırmak isteyebilirsiniz. Aşağıdaki betik tüm kaynak kilitlerini ve kiraları kaldırır. ve <storage-account> değerlerini ortamınız için uygun değerlerle değiştirmeyi <resource-group> unutmayın.

Aşağıdaki betiği çalıştırmadan önce Azure Depolama PowerShell modülünün en son sürümünü yüklemeniz gerekir.

Önemli

Azure Dosyalar kaynaklarınızda kaynak kilitleri alan ve anlık görüntü kiralamalarını paylaşan/paylaşan katma değerli hizmetler düzenli aralıklarla kilitlenebilir ve kiralanabilir. Kilitli kaynakları katma değerli hizmetler tarafından değiştirmek veya silmek, Azure Backup tarafından yönetilen paylaşım anlık görüntülerini silme gibi hizmetlerin normal çalışmasını etkileyebilir.

# Parameters for storage account resource
$resourceGroupName = "<resource-group>"
$storageAccountName = "<storage-account>"

# Get reference to storage account
$storageAccount = Get-AzStorageAccount `
    -ResourceGroupName $resourceGroupName `
    -Name $storageAccountName

# Remove resource locks
Get-AzResourceLock `
        -ResourceType "Microsoft.Storage/storageAccounts" `
        -ResourceGroupName $storageAccount.ResourceGroupName `
        -ResourceName $storageAccount.StorageAccountName | `
    Remove-AzResourceLock -Force | `
    Out-Null

# Remove share and share snapshot leases
Get-AzStorageShare -Context $storageAccount.Context | `
    Where-Object { $_.Name -eq $fileShareName } | `
    ForEach-Object {
        try {
            $leaseClient = [Azure.Storage.Files.Shares.Specialized.ShareLeaseClient]::new($_.ShareClient)
            $leaseClient.Break() | Out-Null
        } catch { }
    }

Dosya veya dizin değiştirilemiyor, taşınamıyor/yeniden adlandırılamıyor veya silinemiyor

Azure dosya paylaşımlarına erişmek için kullandığınız istemci işletim sistemine bağlı olarak Windows veya Linux sekmesini seçin.

Windows'da aşağıdaki hataları görebilirsiniz.

Yalnız bırakılmış dosya tanıtıcıları veya kiraları

Dosya paylaşımının temel amaçlarından biri, birden çok kullanıcı ve uygulamanın paylaşımdaki dosya ve dizinlerle aynı anda etkileşim kurabilmesidir. Bu etkileşime yardımcı olmak için dosya paylaşımları dosyalara ve dizinlere erişime aracılık etmek için çeşitli yollar sağlar.

SMB üzerinden bağlı bir Azure dosya paylaşımından bir dosya açtığınızda, uygulamanız/işletim sisteminiz, dosyaya referans olan bir dosya tanıtıcısı ister. Diğer şeylerin yanında, uygulamanız bir dosya tanıtıcısı istediğinde bir dosya paylaşım modu belirtir ve bu da Azure Dosyalar tarafından zorlanan dosyaya erişiminizin münhasırlık düzeyini belirtir:

  • None: özel erişiminiz vardır.
  • Read: siz açıkken diğerleri dosyayı okuyabilir.
  • Write: siz açıkken diğerleri dosyaya yazabilir.
  • ReadWrite: hem hem Write de Read paylaşım modlarının birleşimi.
  • Delete: siz açıkken diğerleri dosyayı silebilir.

Durum bilgisi olmayan bir protokol olarak FileREST protokolünün dosya tanıtıcıları kavramı olmasa da, betiğinizin, uygulamanızın veya hizmetinizin kullanabileceği dosya ve klasörlere erişime aracılık etmek için benzer bir mekanizma sağlar: dosya kiralamaları. Bir dosya kiralandığında, dosya paylaşım modu olan bir dosya tanıtıcısına Noneeşdeğer olarak değerlendirilir.

Dosya tanıtıcıları ve kiralamaları önemli bir amaca hizmet etse de, bazen dosya tanıtıcıları ve kiralamaları yalnız bırakılmış olabilir. Bu olduğunda, bu, dosyaları değiştirme veya silme konusunda sorunlara neden olabilir. Aşağıdaki gibi hata mesajları görebilirsiniz:

  • Dosya başka bir işlem tarafından kullanıldığından, işlem dosyaya erişemiyor.
  • Dosya başka bir programda açık olduğundan eylem tamamlanamıyor.
  • Belge başka bir kullanıcı tarafından düzenlemeye karşı kilitlenmiş.
  • Belirtilen kaynak SMB istemcisi tarafından silinmek üzere işaretlendi.

Bu sorunun çözümü, bunun yalnız bırakılmış bir dosya tanıtıcısından mı yoksa kiradan mı kaynaklandığına bağlıdır.

Not

REST kiralamaları, dosyaların silinmesini veya değiştirilmesini önlemek için uygulamalar tarafından kullanılır. Herhangi bir kiralamayı bozmadan önce, hangi uygulamanın bunları edindiği belirlemeniz gerekir. Aksi takdirde, uygulama davranışını bozabilirsiniz.

1. Neden

Dosya tanıtıcısı, bir dosyanın/dizinin değiştirilmesini veya silinmesini engelliyor. Açık tanıtıcıları görüntülemek için Get-AzStorageFileHandle PowerShell cmdlet'ini kullanabilirsiniz.

Tüm SMB istemcileri açık tanıtıcılarını bir dosya/dizinde kapattıysa ve sorun oluşmaya devam ediyorsa, dosya tanıtıcısını kapatmaya zorlayabilirsiniz.

1\. Çözüm

Dosya tanıtıcısını kapanmaya zorlamak için Close-AzStorageFileHandle PowerShell cmdlet komutunu kullanın.

Not

ve Close-AzStorageFileHandle cmdlet'leri Get-AzStorageFileHandle Az PowerShell modülünün 2.4 veya sonraki bir sürümüne dahildir. En son Az PowerShell modülünü yüklemek için bkz . Azure PowerShell modülünü yükleme.

2. Neden

Bir dosya kirası, dosyanın değiştirilmesini veya silinmesini önlüyor. Bir dosyanın dosya kiralaması olup olmadığını aşağıdaki PowerShell komutlarıyla de kontrol edebilirsiniz. , <storage-account>, <file-share>ve <path-to-file> değerlerini ortamınız için uygun değerlerle değiştirin<resource-group>.

# Set variables 
$resourceGroupName = "<resource-group>"
$storageAccountName = "<storage-account>"
$fileShareName = "<file-share>"
$fileForLease = "<path-to-file>"

# Get reference to storage account
$storageAccount = Get-AzStorageAccount `
        -ResourceGroupName $resourceGroupName `
        -Name $storageAccountName

# Get reference to file
$file = Get-AzStorageFile `
        -Context $storageAccount.Context `
        -ShareName $fileShareName `
        -Path $fileForLease

$fileClient = $file.ShareFileClient

# Check if the file has a file lease
$fileClient.GetProperties().Value

Dosyanın kirası varsa, döndürülen nesne aşağıdaki özellikleri içermelidir:

LeaseDuration         : Infinite
LeaseState            : Leased
LeaseStatus           : Locked

Çözüm 2

Dosyadan kirayı kaldırmak için kirayı serbest bırakabilir veya kesebilirsiniz. Kirayı serbest bırakmak için, kirayı oluştururken ayarladığınız kiranın LeaseId değerine ihtiyacınız vardır. Kirayı bozmak için LeaseId'ye ihtiyacınız yoktur.

Aşağıdaki örnek, neden 2'de belirtilen dosyanın kirasının nasıl kesileceğini gösterir (bu örnek, Neden 2'den PowerShell değişkenleriyle devam eder):

$leaseClient = [Azure.Storage.Files.Shares.Specialized.ShareLeaseClient]::new($fileClient)
$leaseClient.Break() | Out-Null

Linux'ta Azure dosya paylaşımı anlık görüntüsü bağlanamıyor

Linux'ta Azure dosya paylaşımı anlık görüntüsünü bağlamaya çalışırken "Bağlama hatası(22): Geçersiz bağımsız değişken"

Neden

snapshot Komut seçeneği mount tanınan bir biçimde geçirilmiyorsa, mount komut bu hatayla başarısız olabilir. Onaylamak için çekirdek günlük iletilerini (dmesg) denetleyin; dmesg gibi cifs: Bad value for 'snapshot'bir günlük girdisi gösterir.

Çözüm

Komutun snapshot seçeneğini mount doğru biçimde geçirdiğinizden emin olun. Mount.cifs el ile sayfasına bakın (örneğin man mount.cifs). Sık karşılaşılan bir hata, GMT zaman damgasını nokta yerine kısa çizgi veya iki nokta üst üste kullanma gibi yanlış biçimde geçirmektir. Daha fazla bilgi için bkz . Dosya paylaşımı anlık görüntüsünü bağlama.

Linux'ta Azure dosya paylaşımı anlık görüntüsünü bağlamaya çalışırken "Hatalı anlık görüntü belirteci"

Neden

ile başlayan @GMTanlık görüntü mount seçeneği geçirilirse ancak biçim hala yanlışsa (nokta yerine kısa çizgi ve iki nokta üst üste kullanma gibi), mount komut bu hatayla başarısız olabilir.

Çözüm

GMT zaman damgasını doğru biçimde (olan @GMT-year.month.day-hour.minutes.seconds) geçirdiğinizden emin olun. Daha fazla bilgi için bkz . Dosya paylaşımı anlık görüntüsünü bağlama.

Azure dosya paylaşımı anlık görüntüsünü bağlamaya çalışırken "Bağlama hatası(2): Böyle bir dosya veya dizin yok"

Neden

Bağlamaya çalıştığınız anlık görüntü yoksa komut mount bu hatayla başarısız olabilir. Onaylamak için çekirdek günlük iletilerini (dmesg) denetleyin; dmesg aşağıdaki gibi bir günlük girdisi gösterir:

[Mon Dec 12 10:34:09 2022] CIFS: Attempting to mount \\snapshottestlinux.file.core.windows.net\snapshot-test-share1
[Mon Dec 12 10:34:09 2022] CIFS: VFS: cifs_mount failed w/return code = -2

Çözüm

Bağlamaya çalıştığınız anlık görüntünün mevcut olduğundan emin olun. Belirli bir Azure dosya paylaşımı için kullanılabilir anlık görüntüleri listeleme hakkında daha fazla bilgi için bkz . Dosya paylaşımı anlık görüntüsünü bağlama.

Çok fazla açık tanıtıcıdan disk kotası veya ağ hataları

Azure dosya paylaşımlarına erişmek için kullandığınız istemci işletim sistemine bağlı olarak Windows veya Linux sekmesini seçin.

Hata 1816 - Bu komutu işlemek için yeterli kota yok

Neden

Hata 1816, Azure dosya paylaşımındaki bir dosya veya dizin için izin verilen eşzamanlı açık tanıtıcıların üst sınırına ulaştığınızda oluşur. Daha fazla bilgi için bkz. Azure Dosyaları ölçeklendirme hedefleri.

Çözüm

Bazı tanıtıcıları kapatıp yeniden deneyerek eşzamanlı açık tanıtıcı sayısını azaltın. Daha fazla bilgi için bkz. Microsoft Azure Depolama performans ve ölçeklenebilirlik denetim listesi.

Bir dosya paylaşımına, dizine veya dosyaya ait açık tanıtıcıları görüntülemek için Get-AzStorageFileHandle PowerShell cmdlet'ini kullanın.

Bir dosya paylaşımına, dizine veya dosyaya ait açık tanıtıcıları kapatmak için Close-AzStorageFileHandle cmdlet'ini kullanın.

Not

ve Close-AzStorageFileHandle cmdlet'leri Get-AzStorageFileHandle Az PowerShell modülünün 2.4 veya sonraki bir sürümüne dahildir. En son Az PowerShell modülünü yüklemek için bkz . Azure PowerShell modülünü yükleme.

Tanıtıcı üzerinde herhangi bir işlem yaparken ERROR_UNEXP_NET_ERR (59)

Neden

Çok sayıda açık tanıtıcıyı uzun süre önbelleğe alırsanız/tutarsanız, azaltma nedenleriyle bu sunucu tarafı hatasını görebilirsiniz. İstemci tarafından çok sayıda tanıtıcı önbelleğe alındığında, bu tanıtıcıların çoğu aynı anda yeniden bağlanma aşamasına geçerek sunucuda azaltması gereken bir kuyruk oluşturabilir. Yeniden bağlantı için arka uçta yeniden deneme mantığı ve azaltma, istemcinin zaman aşımından daha uzun sürer. Bu durum, istemcinin herhangi bir işlem için mevcut tanıtıcıyı kullanamadığı ve tüm işlemlerin ERROR_UNEXP_NET_ERR ile başarısız olduğu (59) olarak kendini gösterir.

Ayrıca, istemci tanıtıcısının sunucuyla bağlantısının kesilmesine (örneğin, birkaç dakika süren bir ağ kesintisi) bu hataya neden olabilecek uç durumlar da vardır.

Çözüm

Çok sayıda tanıtıcıyı önbelleğe alma. Tanıtıcıları kapatın ve yeniden deneyin. Açık tanıtıcıları görüntülemek/kapatmak için ve Close-AzStorageFileHandle PowerShell cmdlet'lerini kullanınGet-AzStorageFileHandle.

Büyük ölçekli bir sanal masaüstü dağıtımı veya dosyalar, dizinler ve/veya kök dizin üzerinde tanıtıcıları açan diğer iş yükleri için profil kapsayıcılarını veya disk görüntülerini depolamak için Azure dosya paylaşımları kullanıyorsanız, eşzamanlı açık tanıtıcılar için üst ölçek sınırlarına ulaşabilirsiniz. Bu durumda, ek bir Azure dosya paylaşımı kullanın ve kapsayıcıları veya görüntüleri paylaşımlar arasında dağıtın.

"Bir dosyayı şifrelemeyi desteklemeyen bir hedefe kopyalayabilirsiniz" hatası

Bir dosya ağ üzerinden kopyalandığında, dosyanın şifresi kaynak bilgisayarda çözülür, düz metin olarak iletilir ve hedefte yeniden şifrelenir. Ancak, şifrelenmiş bir dosyayı kopyalamaya çalışırken şu hatayı görebilirsiniz: "Dosyayı şifrelemeyi desteklemeyen bir hedefe kopyalıyorsunuz."

Neden

Şifreleme Dosya Sistemi (EFS) kullanıyorsanız bu sorun oluşabilir. BitLocker ile şifrelenmiş dosyalar Azure Dosyalar kopyalanabilir. Ancak Azure Dosyalar NTFS EFS'yi desteklemez.

Geçici çözüm

Bir dosyayı ağ üzerinden kopyalamak için önce dosyanın şifresini çözmeniz gerekir. Aşağıdaki yöntemlerden birini kullanın:

  • Copy /d komutunu kullanın. Şifrelenmiş dosyaların hedefte şifresi çözülmüş dosyalar olarak kaydedilmesini sağlar.
  • Aşağıdaki kayıt defteri anahtarını ayarlayın:
    • Yol = HKLM\Software\Policies\Microsoft\Windows\System
    • Değer türü = DWORD
    • Ad = CopyFileAllowDecryptedRemoteDestination
    • Değer = 1

Kayıt defteri anahtarının ayarlanmasının ağ paylaşımlarına yapılan tüm kopyalama işlemlerini etkilediğini unutmayın.

Tarayıcıda Azure Dosyalar kullanılarak Bir Web Uygulamasından Desteklenmeyen ConditionHeaders Hatası

ConditionHeadersNotSupported hatası, web tarayıcısı gibi koşullu üst bilgileri kullanan bir uygulama aracılığıyla Azure Dosyalar barındırılan içeriğe erişildiğinde erişim başarısız olduğunda oluşur. Hata, koşul üst bilgilerinin desteklenmediğini belirtir.

ConditionHeadersNotSupported hata iletisini gösteren ekran görüntüsü.

Neden

Koşullu üst bilgiler henüz desteklenmiyor. Bunları uygulayan uygulamaların, dosyaya her erişildiğinde tam dosyayı istemesi gerekir.

Geçici çözüm

Yeni bir dosya karşıya yüklendiğinde CacheControl özelliği varsayılan olarak önbelleksizdir. Uygulamayı her seferinde dosyayı istemeye zorlamak için, dosyanın CacheControl özelliğinin önbelleğe alınmadan önbelleğe alınmadan, depolanmadan, yeniden doğrulanması gerekir. Bu, Azure Depolama Gezgini kullanılarak elde edilebilir.

CacheControl dosya özelliğini gösteren screeshot.

Ayrıca bkz.

Yardım için bize ulaşın

Sorularınız veya yardıma ihtiyacınız varsa bir destek isteği oluşturun veya Azure topluluk desteği isteyin. Ürün geri bildirimini Azure geri bildirim topluluğuna da gönderebilirsiniz.