idftp.put死掉,没有返回解决思路

idftp.put死掉,没有返回
我在外网上架设了一个ftp服务器,端口修改为30030,使用windows server 2008的iis设置的

客户端我使用idftp控件,网络有时快有时慢,上传文件的时候,大小的60兆左右,put一直假死在里面没有返回。请问这是由哪些原因造成的呢?代码如下:

function TCS_Client.Upload_New(AZipFile:String;AGuid:String;var AMsg:String):Boolean;
var
  vFTP:TIdFtp;
begin
  Result:=False;
  try
    vFTP:=TIdFtp.Create(self.FComponent);
    try
      try
        vFtp.Passive:=True;
        vFtp.Host := FtpIP;
        vFtp.Port := FtpPort;
        vFtp.Username := Ftpuser;
        vFtp.Password := FtpPassword;
        vFtp.Connect(True,FTP_TIMEOUT);
      except on e:Exception do
        begin
          AMsg:='连接内容服务器'+FtpIP+'失败';
          WriteLog('vFtp.Connect EXCEPTION. '+e.Message);
          Exit;
        end;
      end;
      try
        vFtp.SendBufferSize := 1024;
        vFtp.ChangeDir(FtpVirtualPath);

        vFtp.Put(AZipFile,AGuid,True);    //就是死在这一句,没有返回!

        Result:=True;
      except on e:Exception do
        begin
          AMsg:='载入文件到内容服务器'+FtpIP+'失败';
          WriteLog('vFtp.Put EXCEPTION. '+e.Message);
          Exit;
        end;
      end;
    finally
      if vFtp.Connected then vFtp.Disconnect;
      vFTP.Free;
    end;
  except on e:Exception do
    begin
      AMsg:='载入文件异常';
      WriteLog('Upload_New EXCEPTION. '+e.Message);
    end;
  end;
end;
------解决方案--------------------
上传下载过程,最好搞个日志输出,便于查看进度,也便于了解出错位置。
------解决方案--------------------
修改默认的FTP端口号