好吧,我想我的写写了。我用的方法很简单,首先先把大文件转换成byte数组,然后调用webservice将byte数组转换成文件。但是如果文件大小超过25M的时候会超时,所以我将这个数组分批传输,每一批都是一个20M的byte数组,然后把这些数组追加,最后形成一个完整的文件。注意在形成文件的时候要判断要生成的文件是否存在,否则如果文件已经存在的话,该文件不会被覆盖,而是被追加。
 
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace controtest
{
    classProgram
    {
       static byte[] buffer;
       static void Main(string[] args)
       {
           string rst =string.Empty ;
           PartnerWebservice.PartnerServices pa = newPartnerWebservice.PartnerServices();
           string path =System.Configuration.ConfigurationSettings.AppSettings["path"].ToString();//文件的存放目录
           string filename =System.Configuration.ConfigurationSettings.AppSettings["name"].ToString();//文件名称
           Console.WriteLine("ConvertToBinary start at"+DateTime.Now.ToString());
           buffer = ConvertToBinary(path);//将文件转换成byte数组
           int   index = buffer.Length /20971520;//20971520bite就是20M,1*1024*1024*20
           index += buffer.Length % 20971520 == 0 ? 0 : 1;
           bool ifEnd=false;//是否为最后一组
           for (int ii = 0; ii < index; ii++)
           {
               if (ii == index - 1)
                   ifEnd = true;
               Console.WriteLine("ConvertToBinary end at " +DateTime.Now.ToString());
               Console.WriteLine("Trans start at " +DateTime.Now.ToString());
               pa.TransFile(ConvertToBinary(ii, ifEnd),"XXXX.XXX");//分批传输数据,追加到XXXX.XXX文件,如果不存在会自动创建
               Console.WriteLine(rst);