我在组织租户 azure 环境中部署了一个 ASP.NET (4.5) 网站。它具有向/从网络位置(我们称之为 nas 驱动器)上传/下载/删除文件(任何类型)的功能,例如 \nas8782\xyz\abc\上传/下载/删除工作正常(见下面的代码)。我们使用由 Azure 团队创建的 CloudSdk.Azure 库。nasClient.UploadAsyncnasClient.DownloadAsyncnasClient.DeleteAsyncnasClient.ListFilesAsync文件服务.csusing CloudSdk.Azure;private string userId = ConfigurationManager.AppSettings["userId"].ToString(); private string userPassword = ConfigurationManager.AppSettings["userPassword"].ToString(); private string baseNasLocation = ConfigurationManager.AppSettings["baseNasLocation"].ToString(); string env = ConfigurationManager.AppSettings["env"].ToString().ToUpper();public async Task Upload(string fileName, string fileToSave, string projectID) { var nasClient = new NasClient(userId, userPassword); var localFiles = new List<string>(); localFiles.Add(fileToSave); await nasClient.UploadAsync(baseNasLocation + env + @"\" + projectID + @"\", localFiles);}public async Task Download(string fileToDownload, string projectID) { var nasClient = new NasClient(userId, userPassword); Stream stream2 = nasClient.DownloadAsync(baseNasLocation + env + @"\" + projectID + @"\" + fileToDownload).Result; var appPath2 = HostingEnvironment.MapPath("~\\TempUpload"); var localFullPath2 = string.Format("{0}\\{1}", appPath2, fileToDownload); using (var fileStream2 = System.IO.File.Create(localFullPath2)) { stream2.CopyTo(fileStream2); }} public async Task Delete(string fileToDelete, string projectID) { var nasClient = new NasClient(userId, userPassword); Task stream2 = nasClient.DeleteAsync(baseNasLocation + env + @"\" + projectID + @"\" + fileToDelete);}问题- 这个 CloudSdk.Azure 库有另一个函数调用 ListFilesAsync,它获取提供的路径中存在的所有文件的列表。我正在使用下面的代码来做同样的事情,但无法得到它。如果我调用这个 Fileservice 方法没有 async 和 await - 它运行但一直运行并且从不返回结果。
2 回答
梵蒂冈之花
TA贡献1900条经验 获得超5个赞
您可以使用 Task.Result 以同步方式获取 Task 的结果。
字符串结果 = Task.Result;
此外,您不应使用 JsonConvert.DeserializeObject 来创建任务。我不确定你想在那里做什么。您可以使用允许动态访问的 JObject。
- 2 回答
- 0 关注
- 234 浏览
添加回答
举报
0/150
提交
取消