【发布时间】:2016-09-29 09:54:33
【问题描述】:
我正在使用 Azure 存储客户端将一些文件上传到 Azure Blob 存储。此上传来自存储在本地计算机中的 dll 文件。以下是我正在使用的代码。
public bool UploadBlob(byte[] fileContent, CloudStorageAccount account, string containerName, string blobName)
{
try
{
CloudBlobClient blobclient = account.CreateCloudBlobClient();
CloudBlobContainer container = blobclient.GetContainerReference(containerName);
container.CreateIfNotExist();
CloudBlockBlob blob = container.GetBlockBlobReference(blobName);
HashSet<string> blocklist = new HashSet<string>();
foreach (FileBlock block in GetFileBlocks(fileContent))
{
if (ScanTool.mIsThreadStop)
return false;
ScanTool.mDocumentUploadedSize += block.Content.Length;
blob.PutBlock(
block.Id,
new MemoryStream(block.Content, true),
null
);
blocklist.Add(block.Id);
}
blob.PutBlockList(blocklist);
blob.FetchAttributes();
return blob.Properties.Length == fileContent.Length;
}
catch (Exception e) {
Log.WriteErrorLog(e, "UploadBlob at AzureBlobUtilCS");
throw new System.Net.WebException();
}
}
我调用上面的上传方法如下,它在下面的代码中抛出“代理验证失败”异常
try
{
CloudBlobContainer container = AzureHelper.GetContainer(containerName, accountName, accountKey);
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(AzureHelper.GetConnectionString(accountName, accountKey));
return UploadBlob(fileContent, storageAccount, containerName, blobName);
}catch(Exception e)
{
WriteInformationMessage("exception at UploadBlob11 =" + e.Message);
return false;
}
这个问题是在我的一个客户站点中遇到的,他说他们在本地网络中有一个代理。代理名称是bluecoat proxy SG 900
如何摆脱这个?
【问题讨论】:
-
您可以尝试在 app/web 配置文件中设置代理设置:msdn.microsoft.com/en-us/library/kd3cf2ex(v=vs.110).aspx。
-
请按照上面 Gaurav 的说明进行操作。 :)
-
@Zhaoxing Lu 有没有办法使用 azure 存储客户端库对代理进行身份验证
-
我认为该设置不在 Azure 存储客户端库级别。你应该在defaultProxy中全局设置,相关问题:stackoverflow.com/questions/299940/…,stackoverflow.com/questions/12050415/…
标签: c# azure proxy azure-blob-storage