Domanda

Stavo cercando di caricare un file da 34 MB sul blob ma mi sta spingendo un errore

    XML Parsing Error: no element found
Location: http://127.0.0.1:83/Default.aspx
Line Number 1, Column 1:

Cosa dovrei fare ... come risolverlo


Sono in grado di caricare piccoli file di dimensioni 500kb .. ma ho un file di dimensioni 34 MB da caricare nel mio contenitore BLOB

L'ho provato usando

protected void ButUpload_click(object sender, EventArgs e)
        {
            // store upladed file as a blob storage
            if (uplFileUpload.HasFile)
            {
                name = uplFileUpload.FileName;
                // get refernce to the cloud blob container
                CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("documents");

                // set the name for the uploading files
                string UploadDocName = name;

                // get the blob reference and set the metadata properties
                CloudBlob blob = blobContainer.GetBlobReference(UploadDocName);
                blob.Metadata["FILETYPE"] = "text";
                blob.Properties.ContentType = uplFileUpload.PostedFile.ContentType;

                // upload the blob to the storage
                blob.UploadFromStream(uplFileUpload.FileContent);

            }
        } 

Ma non sono in grado di caricarlo .. qualcuno può dirmi come farlo ...

È stato utile?

Soluzione

Le macchie più grandi di 64 MB devono essere caricate utilizzando BLOBS. Si rompe il file in blocchi, caricano tutti i blocchi (associando ogni blocco con un identificatore di stringa univoco) e alla fine si pubblicano l'elenco degli ID blocchi sul BLOB per commettere l'intero lotto in una volta.

Il caricamento in blocchi è anche raccomandato per grandi macchie di dimensioni inferiori a 64 MB. È molto facile per un singhiozzo nella connessione di rete o per il routing su Internet perdere un frame o due in un caricamento molto grande, che corromperà o invaliderà l'intero caricamento. Usa blocchi più piccoli per ridurre l'esposizione agli eventi cosmici.

Maggiori informazioni in questo thread di discussione: http://social.msdn.microsoft.com/forums/en-nz/windowowsazure/thread/f4575746-a695-40ff-9e49-ffe4c99b28c7

Altri suggerimenti

Inizierei lasciando un po 'di registrazione nel progetto per provare a rintracciare il problema. Potrebbe non accadere dove pensi. Potrebbe anche esserci un errore di autorizzazioni. Prova ad aggiungere alcuni dati fittizi nel database. Se non riesce ancora, potrebbe essere un potenziale problema.

Ma rintracciarlo con un po 'di debug, registrazione e una recensione del codice, scommetto che puoi arrivare in fondo al problema prima in quel modo. E contribuirà anche a rendere il tuo codice più robusto.

Puoi usare Blobs qui. Penso che sia un problema con la dimensione della tua richiesta web. È possibile modificare questa impostazione nel web.config aumentando il numero dell'attributo MaxRequestLength nell'elemento. Se stai inviando blocchi di 500 kb, stai sprecando la larghezza di banda e abbassando le prestazioni. Invia blocchi di dati più grandi come 1-2 MB per chunk. Vedi il mio controllo di upload basato su Silverlight o HTML5 per caricamenti a pezzi. Scegli il controllo del caricamento del file azure: Silverlight e TPL o HTML5 e AJAX

Usa l'utilità di trasferimento BLOB per scaricare e caricare tutti i file BLOB.

È uno strumento per gestire migliaia di trasferimenti BLOB (piccoli/grandi) in modo efficace.

Binari e codice sorgente, qui: http://bit.ly/blobtransfer

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top