биты, sharpBits.net - PullRequest
       15

биты, sharpBits.net

1 голос
/ 12 октября 2011

Я использую в своем проекте BITS - Background Intelligent Transfer Service для отправки файла с большим размером.Использование SharpBITS.NET в коде C #.Я хочу загрузить файл с сервера на клиент.Теперь я отмечаю стороны.

------------- сторона клиента ---------------

static voidMain (string [] args) {

        string local = @"I:\a.mp3";

        string destination = "http://192.168.56.128/BitsTest/Home/FileUpload";

        string remoteFile = @destination;
        string localFile = local;
        if (!string.IsNullOrEmpty(localFile) && System.IO.File.Exists(localFile))
        {
            var bitsManager = new BitsManager();
            var job = bitsManager.CreateJob("uploading file", JobType.Upload);
            job.NotificationFlags = NotificationFlags.JobErrorOccured |      NotificationFlags.JobModified |
                                    NotificationFlags.JobTransferred;

            job.AddFile(remoteFile, localFile);
            job.Resume();

            job.OnJobError += new EventHandler<JobErrorNotificationEventArgs>(job_OnJobError);

        }
    }

Это простое консольное приложение.локальный - путь к файлу, который я хочу отправить, пункт назначения - путь к получателю, это удаленный сервер.Когда я запускаю программу, задание выполняется. Ошибка принимают mi follow --- "Ответ сервера недействителен. Сервер не следует заданному протоколу. Возобновите задание, и затем Фоновая интеллектуальная служба передачи (BITS) попытается снова. -BG_E_HTTP_ERROR_200.-2145845048, 0x801900C8 "

Для клиента (получателя) у меня есть следующий код: Это небольшой проект Mvs 3, и я просматриваю только действие, куда идти по пути назначения.

 public ActionResult FileUpload()
        {
            try
            {
                HttpPostedFileBase file = Request.Files[0];
                file.SaveAs(System.IO.Path.Combine(Server.MapPath("/BitsTest/"), file.FileName));
            }
            catch
            { }
            /*System.IO.File.Move(Server.MapPath("/BitsTest/bin/aa.png"), Server.MapPath("/BitsTest/Content/aa.png"));*/
}

Но действие FileUpload это не получение файла.Я не знаю, как я могу получить файл на стороне клиента.Как видите, я использовал HttpPostedFileBase для получения файла, но это не работает.

Мой хост-сервер - Windows Server 2008 r2, и я выполнил необходимые шаги для BITS.Для получения дополнительной информации вы можете посетить следующий сайт http://technet.microsoft.com/en-us/library/cc431377.aspx ---- Как настроить Windows Server 2008 для систем сайта Configuration Manager 2007.

Так что я не знаю, что делать, что я могу получитьфайл на хост-сервере. Вы можете сказать мне, что вы можете сделать.

1 Ответ

0 голосов
/ 12 октября 2011

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

В «прошлом» вы могли настроить элементы управления ActiveX, апплеты Java и т. Д. (Silverlight сегодня?), чтобы продолжать слушать, но это не прямая разработка веб-стиля.

HTML5 расширяет ваши возможности, если вы желаете использовать websocketAPI.Как и во всех частях HTML5, вы рискуете использовать эти биты для реализации, так как не все браузеры уже приняли «стандарт» (принятие ожидается в ближайшие 10-12 лет: ->).

...