SOAP, получение прогресса загруженного запроса во время его загрузки c # - PullRequest
2 голосов
/ 02 февраля 2010

Я пытаюсь загрузить файл через SOAP-запрос, и он отлично работает, но я не могу получить информацию о загруженной сумме запроса.

Ответы [ 2 ]

1 голос
/ 02 февраля 2010

Вы можете попробовать отправить файл в виде «кусков», например, по 1 МБ за раз, вместо того, чтобы отправлять все сразу? Таким образом, когда каждый блок завершится, вы сможете обновить прогресс.

0 голосов
/ 01 мая 2011

Я могу ответить на мой вопрос сейчас,

Я больше не использую SOAP для загрузки своих файлов в свое решение, сейчас я использую HTTPWebRequest,

1) да, я загружаю свои большие файлы кусками (каждый блок занимает 1 МБ), 2) каждый блок (1 МБ) может дать мне прогресс каждого BufferSize (4 КБ в моем случае);

так что есть большой цикл, foreach (Chunk in File) {}.

и внутри большого цикла есть еще один цикл, поскольку я использую HTTPWebRequest:

long buffer = 4096;
Stream stm = request.GetRequestStream();
while (remainingOfChunkWithReq != 0)
{
  stm.Write(buffer, 0, bytesRead);
  remainingOfChunkWithReq = remainingOfChunkWithReq - bytesRead;
  bytesRead = memoryStream.Read(buffer, 0, bytesSize);
  //Send Progress
}

затем продолжайте посылать запрос. и получите ответ.

...