1

我在我的项目中使用 BITS - 后台智能传输服务来发送大尺寸文件。在 C# 代码中使用 SharpBITS.NET。我想将文件从服务器上传到客户端。我现在注意侧面。

- - - - - - -客户端 - - - - - - - -

静态无效主要(字符串[] 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);

        }
    }

这是一个简单的控制台应用程序。本地 - 我要发送的文件的路径,目的地 - 路径是接收器它是远程服务器。当我运行程序时,job.Error take 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 ---- 如何为 Configuration Manager 2007 站点系统配置 Windows Server 2008。

所以我不知道我可以在主机服务器中接收文件做什么。你可以告诉我你可以做什么。

4

1 回答 1

0

使用像一个 Web 应用程序使用的无状态方法,一旦响应完成,就没有与服务器的连接。您可以从客户端轮询服务器,但客户端不会监听服务器发送额外的位。

在“过去”中,您可以设置 ActiveX 控件、Java 小程序等(今天的 Silverlight?)以继续收听,但这不是直接的 Web 风格开发。

如果您愿意使用 websocketAPI,HTML5 会扩展您的选择。与 HTML5 的所有部分一样,使用这些位进行实施存在一定风险,因为并非所有浏览器都采用了“标准”(预计在未来 10 到 12 年内采用完成:->)。

于 2011-10-12T15:16:17.743 回答