2016-05-31 7 views
2

Ich verwende den azure-Speicherclient, um einige Dateien in den Azure-Blobspeicher hochzuladen. Dieser Upload erfolgt von einer dll Datei, die auf dem lokalen Computer gespeichert ist. Folgendes ist der Code, den ich verwende.Azure Storage Client-Bibliothek Hochladen mit Proxyserver

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(); 
     } 
    } 

ich oben Upload-Methode Aufruf wie folgt und es wirft Exception „Proxy-Authentifizierung fehlgeschlagen“ Code auf folgende

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; 
     } 

Dieses Problem ist Begegnung in einem meiner Kunden vor Ort und er sagt, sie habe einen Proxy in ihrem lokalen Netzwerk. Proxy-Name ist bluecoat proxy SG 900

Wie wird man davon los?

+0

Sie können versuchen, die Proxy-Einstellungen in app/Web-Konfigurationsdatei: https://msdn.microsoft. com/de-de/library/kd3cf2ex (v = vs.110) .aspx. –

+0

Bitte befolgen Sie die Anweisungen von Gaurav oben. :) –

+0

@Zhaoxing Lu gibt es eine Möglichkeit zur Authentifizierung Proxy mit azurblauen Speicher Client-Bibliothek –

Antwort

1

Ich hatte ähnliche Probleme, nicht nur in Azure Storage, sondern auch auf der gesamten Website.

Um das Standard-Proxy von Azure Storage, die der Standard-Proxy von der HttpClient Klasse verwendet werden passiert verwendet zu deaktivieren, änderte ich Web.config, durch Zugabe des defaultProxy Elements:

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

Wenn Sie konfigurieren müssen, der Standard-Proxy, anstatt es zu deaktivieren, können Sie auch innerhalb desselben Elements gemäß der Dokumentation tun: https://msdn.microsoft.com/en-us/library/kd3cf2ex(v=vs.110).aspx