本文列出使用 SMB Azure 檔案共享時可能會遇到的 ClientOtherErrors。 一般而言,ClientOtherErrors 大多是無害且預期的錯誤。 要求失敗,但系統會繼續如預期般運作。 正常情況是看到記錄的這些錯誤數量。
適用於
檔案共用類型 | SMB | NFS |
---|---|---|
標準檔案共用 (GPv2)、LRS/ZRS | ![]() |
![]() |
標準檔案共用 (GPv2)、GRS/GZRS | ![]() |
![]() |
進階檔案共用 (FileStorage)、LRS/ZRS | ![]() |
![]() |
什麼是 ClientOtherErrors?
ClientOtherError 通常表示預期的用戶端錯誤,例如「找不到」和「資源已經存在」。在伺服器端記憶體記錄檔中,這些作業會以 ClientOtherErrors 的交易狀態來記錄。
例如,與遠端文件系統互動的 Windows SMB 用戶端不一定知道遠端檔案系統的功能。 它可以是 Windows Server、Azure 檔案儲存體 或其他 SMB 伺服器實作。 因此,SMB 用戶端會使用特定 API 呼叫遠端檔案伺服器。 如果這些 API 失敗,它會回復為使用不同的 API,甚至只忽略這些錯誤。 根據SMB的要求/回應通訊協定,即使系統已正確運作,仍會失敗大量的要求。 這可能是因為授權失敗、嘗試建立名稱已經存在的檔案,或嘗試開啟不存在的檔案。
記錄與報告
若要針對 ClientOtherErrors 進行疑難解答,您可以建立診斷設定,並使用 Azure 監視器 進行報告。 您也可以 分析記錄 以檢視失敗的要求,包括 ClientOtherErrors,或使用 Kusto 查詢。
您也可以從符合記錄中顯示的IP位址的用戶端收集 ProcMon 追蹤 。 新增篩選,只查看 Azure 檔案儲存體 的流量。
Common ClientOtherErrors
下表列出常見的 ClientOtherErrors,以及每個錯誤的說明。
運算 | 狀態 | 錯誤的說明 |
---|---|---|
QueryFullEaInformation | STATUS_NOT_IMPLEMENTED | 因為 Azure 檔案儲存體 未實作此 API,因此會傳回此失敗。 Azure 檔案儲存體 目前不支援擴充屬性。 |
UnknownFileClass=48 | STATUS_NOT_SUPPORTED | 這是 FileNormalizedNameInformation API 呼叫。 這是 Windows Server 的新支援,目前 Azure 檔案儲存體 不支援此 API。 |
FileOpen | 492 STATUS_ACCESS_DENIED | 呼叫端沒有開啟檔案的必要許可權。 在 Kerberos 存取的情況下,ACL 會拒絕呼叫端存取。 |
FileOpen | 257 STATUS_OBJECT_NAME_INVALID | 開啟要求的路徑無效(例如路徑太長或太深)。 |
FileOpen | 12 STATUS_FILE_IS_ADIRECTORY | 呼叫端正在開啟目錄,而不使用正確的 CreateFile 參數(例如備份意圖)。 |
FileOpen | 8 STATUS_SHARING_VIOLATION | 呼叫端正在開啟已以限制開啟的檔案(例如,獨佔或其他人只能讀取)。 |
FileOpen | 6 STATUS_OBJECT_NAME_NOT_FOUND | 呼叫端正在開啟不存在的檔案。 |
FSCTL_QUERY_NETWORK_INTERFACE_INFO (IOCTL) | STATUS_INVALID_DEVICE_REQUEST | 這隻適用於客戶啟用多重通道功能時 Azure 檔案儲存體。 在其他情況下,不需要,而且我們從客戶端查詢時會傳回無效的裝置要求。 |
QueryStreamInformation | STATUS_NOT_IMPLEMENTED | 某些文件系統具有替代數據流或其他數據流的概念,例如重新分析點數據流。 Azure 檔案儲存體 沒有這個概念,因此我們不支援 API。 |
非預期 (IOCTL) | STATUS_INVALID_DEVICE_REQUEST | 這是 FSCTL_QUERY_FILE_REGIONS NTFS/refs 特有的區域概念,與 Azure 檔案儲存體 無關。 因此,我們不會實作此 FSCTL 程式代碼。 |
ChangeNotify | STATUS_CANCELLED | Windows Shell Explorer 之類的應用程式會訂閱檔案的變更通知。 如此一來,當檔案上的屬性變更時,Windows Shell Explorer 會自動在檢視中更新。 用戶端可以選擇取消此訂用帳戶(例如,如果使用者已在 [總管] 中變更檢視,且不再需要它)。 在此情況下,我們會傳送 STATUS_CANCELLED 回用戶端,以確認訂用帳戶已取消。 |
FSCTL_DFS_GET_REFERRALS (IOCTL) | STATUS_FS_DRIVER_REQUIRED | 這是 DFS 轉介要求。 Azure 檔案儲存體 不支援 DFS,而且當系統不支援 DFS 時,這是傳回的正確狀態。 |
FileSupersede | STATUS_ACCESS_DENIED | 檔案取代是刪除現有檔案並放置新檔案的作業。 如果呼叫端沒有刪除現有檔案的許可權,呼叫將會失敗。 |
FileCreate | 7 STATUS_OBJECT_NAME_INVALID | 當建立新檔案的要求具有無效的要求名稱時,就會發生這種情況(例如,使用不支援的字元)。 |
FileCreate | 3 STATUS_OBJECT_NAME_COLLISION | 當建立新檔案的要求具有符合現有檔案的要求名稱時,就會發生這種情況。 |
參閱 | STATUS_ACCESS_DENIED | 當具有未授與讀取存取權的句柄的檔案上完成讀取要求時,就會發生這種情況(例如,檔案是以所需的寫入許可權開啟的)。 |
TreeConnect | STATUS_ACCESS_DENIED | 在 Kerberos 驗證的內容中,呼叫端沒有透過 RBAC 或「預設共用許可權」功能指派的共享層級許可權。 如果未設定「預設共用許可權」功能,則計算機身分識別的呼叫端會持續在共用上取得此存取失敗。 |
另請參閱
與我們連絡,以取得說明
如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。