C # удаленный поток для передачи файлов не читает - PullRequest
0 голосов
/ 18 ноября 2011

Я написал небольшую «Программу обновления», чтобы поддерживать .exe в актуальном состоянии для остальной части моей команды разработчиков.Раньше он работал нормально, но внезапно перестал работать.

Я уже заметил проблему: мой удаленный поток не начинает читать.

        Uri patch = new Uri("http://********/*********/" + GetVersion().ToString() + ".exe");
        Int64 patchsize = PatchSize(patch);
        var CurrentPath = String.Format("{0}\\", Environment.CurrentDirectory);
        Int64 IntSizeTotal = 0;
        Int64 IntRunning = 0;
        string strNextPatch = (version + ".exe");

        using (System.Net.WebClient client = new System.Net.WebClient())
        {
            using (System.IO.Stream streamRemote = client.OpenRead(patch))
            {
                using (System.IO.Stream streamLocal = new FileStream(CurrentPath + strNextPatch, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    int intByteSize = 0;

                    byte[] byteBuffer = new Byte[IntSizeTotal];

                    while ((intByteSize = streamRemote.Read(byteBuffer, 0, byteBuffer.Length)) > 0)
                    {
                        streamLocal.Write(byteBuffer, 0, intByteSize);

                        IntRunning += intByteSize;

                        double dIndex = (double)(IntRunning);
                        double dTotal = (double)byteBuffer.Length;
                        double dProgressPercentage = (dIndex / dTotal);
                        int intProgressPercentage = (int)(dProgressPercentage * 100);

                        worker.ReportProgress(intProgressPercentage);
                    }
                    streamLocal.Close();
                }
                streamRemote.Close();

GetVersion () возвращает только текущую версиюномер текущей версии сервера .exe.Проблема заключается в следующем:

while ((intByteSize = streamRemote.Read(byteBuffer, 0, byteBuffer.Length)) > 0)

Мой streamRemote просто не возвращает байтов, так что это предложение пока не заполнено.

Любой совет для меня?

1 Ответ

0 голосов
/ 18 ноября 2011

Я считаю, что проблема на сервере.Я бы проверил несколько проверок:

  • Что-нибудь изменилось в конфигурации веб-сервера, что не позволяет загружать исполняемые файлы?
  • Вы подключаетесь через прокси-сервер?
  • Можно ли вручную перейти по тому же URL-адресу (с теми же учетными данными пользователя, что и ваше приложение)?
...