c# – CloudBlobContainer .Exists()将挂起/超时
发布时间:2020-12-15 22:00:16 所属栏目:百科 来源:网络整理
导读:出于某种原因,调用.Exists(),. CreateIfNotExists()和.Create()将挂起并永不返回.我实际上并没有得到超时异常,我只是认为人们可能会搜索该术语. 这是具体的代码: var container = _blobClient.GetContainerReference("report_dunderMifflin_details");conta
出于某种原因,调用.Exists(),. CreateIfNotExists()和.Create()将挂起并永不返回.我实际上并没有得到超时异常,我只是认为人们可能会搜索该术语.
这是具体的代码: var container = _blobClient.GetContainerReference("report_dunderMifflin_details"); container.CreateIfNotExists(BlobContainerPublicAccessType.Off); //alternatively,because I know it doesn't exist yet //I can just call Create and it will hang too container.Create(); 解决方法
我尝试通过Azure门户手动创建相同的容器(report_dunderMifflin_details),我得到一个例外,说:
一旦我将容器名称从report_dunderMifflin_details更改为report-dundermifflin-details,它就运行得很好.在Windows.AzureStorage类中没有抛出任何异常,实在令人失望. 编辑1: 即使名称使用正确的格式,在已经存在的容器上调用Create()似乎也会导致调用.瘸. 编辑2: 我已经开始在Azure SDK之上编写一个外观,因此它不是很复杂,并且实现了用于模拟/测试目的的界面.我将这个辅助方法添加到我的外观中,以检查错误的建议容器名称. private void CheckContainer(string containerName) { var invalidNameMessage = "Container names can contain only letters,and hyphens and must be lowercase. The name must start with a letter or a number. The name can't contain two consecutive hyphens."; var anyInvalidChars = new Regex("[^0-9a-z-]"); if (anyInvalidChars.IsMatch(containerName)) throw new ArgumentException(invalidNameMessage); var startsWithHyphen = new Regex("$-"); if (startsWithHyphen.IsMatch(containerName)) throw new ArgumentException(invalidNameMessage); var twoHyphens = new Regex("--"); if (twoHyphens.IsMatch(containerName)) throw new ArgumentException(invalidNameMessage); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容