Windows Azure存储版本升级到> 4会导致“远程服务器返回错误
发布时间:2020-12-14 03:54:26 所属栏目:Windows 来源:网络整理
导读:我通过nuget包管理器升级到4.0.1.0后开始体验这一点.然后我升级到4.1.0.0希望它可能是一个bug,但仍然是同样的问题. 我使用的是基于云的azure存储,而不是模拟器. 我以前使用3.0.3.0并且它工作,并且当我切换到此版本时仍然有效. 这是整个方法(基本上将blob从一
我通过nuget包管理器升级到4.0.1.0后开始体验这一点.然后我升级到4.1.0.0希望它可能是一个bug,但仍然是同样的问题.
我使用的是基于云的azure存储,而不是模拟器. 我以前使用3.0.3.0并且它工作,并且当我切换到此版本时仍然有效. 这是整个方法(基本上将blob从一个容器复制到另一个容器) public string CopyBlobs(string blobPath) { var storageAccount = new CloudStorageAccount(new StorageCredentials(_storageAccountName,_storageAccountKey),true); var cloudBlobClient = storageAccount.CreateCloudBlobClient(); var destContainer = cloudBlobClient.GetContainerReference(cloudBlobClient.BaseUri + _publishBlobContainer); destContainer.CreateIfNotExists(); BlobContainerPermissions containerPermissions = new BlobContainerPermissions(); containerPermissions.PublicAccess = BlobContainerPublicAccessType.Blob; destContainer.SetPermissions(containerPermissions); var src = GetSasUrl(blobPath); CloudBlockBlob srcBlob = new CloudBlockBlob(new Uri(src)); CloudBlockBlob destBlob; destBlob = destContainer.GetBlockBlobReference(srcBlob.Name); destBlob.StartCopyFromBlob(srcBlob); return destBlob.StorageUri.PrimaryUri.ToString(); } 这就是抛出异常的地方: destContainer.CreateIfNotExists(); 更新: 请求: HEAD https://accountname.blob.core.windows.net/https://accountname.blob.core.windows.net/published-clips?restype=container HTTP/1.1 User-Agent: WA-Storage/4.1.0 (.NET CLR 4.0.30319.34014; Win32NT 6.2.9200.0) x-ms-version: 2014-02-14 x-ms-client-request-id: b60edc19-7d8f-4d6b-b264-0c98b9cb157d x-ms-date: Thu,26 Jun 2014 12:43:29 GMT Authorization: SharedKey accountname:key Host: accountname.blob.core.windows.net Connection: Keep-Alive 响应: HTTP/1.1 400 The requested URI does not represent any resource on the server. Transfer-Encoding: chunked Server: Microsoft-HTTPAPI/2.0 x-ms-request-id: 85015e32-fdcf-4398-af23-83ddf8a27c1b Access-Control-Expose-Headers: x-ms-request-id Access-Control-Allow-Origin: * Date: Thu,26 Jun 2014 12:43:31 GMT 解决方法
请更改以下代码行:
var destContainer = cloudBlobClient.GetContainerReference(cloudBlobClient.BaseUri + _publishBlobContainer); 至 var destContainer = cloudBlobClient.GetContainerReference(_publishBlobContainer); 这应该解决问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |