【问题标题】:Azure Storage Client Library Upload with Proxy server使用代理服务器上传 Azure 存储客户端库
【发布时间】: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

如何摆脱这个?

【问题讨论】:

标签: c# azure proxy azure-blob-storage


【解决方案1】:

我遇到了类似的问题,不仅在 Azure 存储中,而且在整个网站上。

为了禁用 Azure 存储使用的默认代理,恰好是 HttpClient 类使用的默认代理,我更改了 Web.config,添加了 defaultProxy 元素:

<configuration>
  <system.net>
    <defaultProxy enabled="false"></defaultProxy>
  </system.net>
</configuration>

如果您必须配置默认代理,而不是禁用它,您也可以在同一元素中执行此操作,根据文档:https://msdn.microsoft.com/en-us/library/kd3cf2ex(v=vs.110).aspx

【讨论】:

    猜你喜欢
    • 2022-12-15
    • 2022-01-07
    • 1970-01-01
    • 2013-04-24
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    相关资源
    最近更新 更多