【发布时间】:2018-05-21 09:38:43
【问题描述】:
我正在向 Azure Datalake 写入一个简单文件,以了解如何将其用于其他方式,但我遇到了问题,当我尝试写入时,我收到以下错误消息
21/5/2018 9:03:27 AM] Executed 'NWPimFeederFromAws' (Failed, Id=39adba4b-9c27-4078-b560-c25532e8432e)
[21/5/2018 9:03:27 AM] System.Private.CoreLib: Exception while executing function: NWPimFeederFromAws. Microsoft.Azure.Management.DataLake.Store: One or more errors occurred. (Operation returned an invalid status code 'Forbidden'). Microsoft.Azure.Management.DataLake.Store: Operation returned an invalid status code 'Forbidden'.
有问题的代码如下
static void WriteToAzureDataLake() {
// 1. Set Synchronization Context
SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
// 2. Create credentials to authenticate requests as an Active Directory application
var clientCredential = new ClientCredential(clientId, clientSecret);
//var creds = ApplicationTokenProvider.LoginSilentAsync(tenantId, clientCredential).Result;
var creds = ApplicationTokenProvider.LoginSilentAsync(tenantId, clientCredential).Result;
// 2. Initialise Data Lake Store File System Client
adlsFileSystemClient = new DataLakeStoreFileSystemManagementClient(creds);
// 3. Upload a file to the Data Lake Store
var source = "c:\\nwsys\\source.txt";
var destination = "/PIMRAW/destination.txt";
adlsFileSystemClient.FileSystem.UploadFile(adlsAccountName, source, destination, 1, false, true);
// FINISHED
Console.WriteLine("6. Finished!");
}
我已将 Azure AD 中的应用程序添加到我尝试写入的特定文件夹的访问列表中,如下所示
我的代码中的 clientID 和 clientSecret 来自这个应用程序,所以我有点不知道为什么我被禁止了。
我还忘了别的吗?
在我尝试创建客户端之前,可能是 loginAsync 尚未完成?
【问题讨论】:
-
您是否将文件夹的子权限替换为文件夹权限?还有你申请后等了多久。推广权限通常需要 30 分钟
-
我确实说这个文件夹和所有的孩子是的,我已经等了超过 30 分钟
-
它与
LoginAsync无关(我可以毫无问题地使用您的相同代码)。是否有可能该文件已经存在,并且您尚未授予对特定文件的访问权限(以便覆盖它)? -
文件不存在确定文件夹是新的且完全为空
标签: c# azure azure-active-directory azure-functions azure-data-lake