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
- SMB şifrelemesini destekleyen bir istemciden bağlanın (Windows 8/Windows Server 2012 veya üzeri).
- Azure dosya paylaşımı için kullanılan Azure depolama hesabıyla aynı veri merkezindeki bir sanal makineden (VM) bağlanın.
- İ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 kullanarakrunas
hizmet 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 DosyalarRm
için Azure PowerShell cmdlet'leri (örneğin,Get-AzRmStorageShare
) ve komut grubundakishare-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'leriRm
Get-AzStorageShare
ve komut grubu altındakishare
eski Azure Dosyalar CLI komutları (örneğin, ) gibi bazı araçlar ve yardımcı programlar,az storage share list
FileREST API'sinde kaynak sağlayıcısını ve kaynak kilitlerini atlayanMicrosoft.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 hemWrite
deRead
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 None
eş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 @GMT
anlı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.
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.
Ayrıca bkz.
- Azure Dosyalarının Sorunlarını Giderme
- Azure Dosyalar performansı sorunlarını giderme
- Azure Dosyalar kimlik doğrulaması ve yetkilendirme (SMB) sorunlarını giderme
- Linux'ta Azure Dosyalar genel SMB sorunlarını giderme
- Linux'ta Azure Dosyalar genel NFS sorunlarını giderme
- Azure Dosya Eşitleme sorunlarını giderme
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.