Загрузка в NancyFX зависает при загрузке - PullRequest
0 голосов
/ 18 марта 2019

пакет nuget Microsoft.Azure.Storage.File 9.4.2 загружает файлы где-то <26 МБ просто отлично и беззвучно зависает при загрузке файлов> 26 МБ.

Проект ориентирован на .NET (Desktop) Framework 4.7.2.

***** Обновление ***** Эта проблема возникает при попытке загрузки файла большого размера с использованием различных клиентов и различных облачных служб (у меня возникла та же проблема при загрузке вS3), но только в контексте веб-приложения NancyFx.Локальная проблема возникает так же, как при развертывании в службе приложений Azure, поэтому она почти наверняка не связана с моей локальной конфигурацией разработчика.

Чтобы было ясно, загрузки зависают при попытке загрузить в приложении NancyFx;Я не загружаю в приложение NancyFx.

На данный момент мое решение состоит в том, чтобы просто не загружать файлы изнутри Нэнси, но я оставлю этот вопрос открытым на случай, еслиКто-нибудь заинтересован в техническом решении проблемы, которая все еще существует.

***** Конец обновления *****

И, чтобы быть понятным, загрузка файлов

Попытка использования выглядит следующим образом:

public void UploadFileFromFile(string azureFileName, string localFileName)
{
    CloudStorageAccount storageAccount = CloudStorageAccount.Parse(SafeConfig.AzureFileStorageMaterialConnectionString);
    CloudFileClient client = storageAccount.CreateCloudFileClient();
    CloudFileShare share = client.GetShareReference(SafeConfig.AzureFileStorageMaterialShareName);
    CloudFileDirectory dir = share.GetRootDirectoryReference();
    CloudFile fileReference = dir.GetFileReference(azureFileName);
    fileReference.UploadFromFile(localFileName);
}

Стоит отметить, что клиент зависает точно так же, когда я использую метод fileReference.UploadFromByteArray(), и также зависает, когда я пытаюсь использовать различные альтернативы * Async, какну.

Когда я пытаюсь использовать метод fileReference.UploadFromStream(), я получаю исключение " Объект не находится в пригодном для использования состоянии ", которое я не считаю особенно действующим сообщением об исключении,Это мой предпочтительный метод для загрузки, но из-за разной ошибки это может быть отдельным вопросом.

1 Ответ

0 голосов
/ 19 марта 2019

Я использую тот же пакет и тот же код, что и у вас, все в порядке, и размер файла может быть загружен более 26M. Можете ли вы попытаться перезапустить вашу визуальную студию и повторить попытку?

Мой код:

using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.File;
using System;

namespace MyConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            Program p = new Program();
            string azureFileName = "1.zip";
            string localFileName = @"D:\1.zip";

            Console.WriteLine("start upload..");

            p.UploadFileFromFile(azureFileName, localFileName);

            Console.WriteLine("completed**");
            Console.ReadLine();
        }

        public void UploadFileFromFile(string azureFileName, string localFileName)
        {
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse("xxxx");
            CloudFileClient client = storageAccount.CreateCloudFileClient();
            CloudFileShare share = client.GetShareReference("testfolder");
            CloudFileDirectory dir = share.GetRootDirectoryReference();
            CloudFile fileReference = dir.GetFileReference(azureFileName);
            Console.WriteLine("going to upload");
            fileReference.UploadFromFile(localFileName);
        }
    }
}

Файл может быть загружен:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...