0

私の ftp アップロードには数時間、たとえば 10 時間かかります。

1時間48分25秒後(約!)(=〜108分)、mysqlサーバー、proftpdサーバー、またはc#がクライアントへの接続を切断します...(5回試しました)

または、どのソフトウェアが責任を負っていますか?

C# コード:

FtpWebRequest req = (FtpWebRequest)WebRequest.Create("ftp://192.168.1.3/test-file.zip");
req.Credentials = new NetworkCredential("username", "password");
req.UsePassive = true;
req.EnableSsl = true;
req.UseBinary = true;
// Upload per req.GetRequestStream .Write

Proftpd-構成の「タイムアウト」:

TimeoutIdle             1200
TimeoutNoTransfer       600
TimeoutStalled          600

Proftpd-ログ:

Oct 20 09:15:43 WD-NAS proftpd[2700] WD-NAS.fritz.box (patrick.fritz.box[192.168.1.2]): FTP session opened.
Oct 20 09:15:51 WD-NAS proftpd[2700] WD-NAS.fritz.box (patrick.fritz.box[192.168.1.2]): Preparing to chroot to directory '/var/www/files'
Oct 20 09:15:51 WD-NAS proftpd[2700] WD-NAS.fritz.box (patrick.fritz.box[192.168.1.2]): USER username: Login successful.
Oct 20 11:04:16 WD-NAS proftpd[2700] WD-NAS.fritz.box (patrick.fritz.box[192.168.1.2]): FTP session closed.

MySQL-ログ:

Oct 20 09:15:43 mod_sql/4.3[2700]: defaulting to 'mysql' backend
Oct 20 09:15:43 mod_sql/4.3[2700]: backend module 'mod_sql_mysql/4.0.8'
Oct 20 09:15:43 mod_sql/4.3[2700]: backend api    'mod_sql_api_v1'
Oct 20 09:15:43 mod_sql/4.3[2700]: >>> sql_sess_init
Oct 20 09:15:43 mod_sql/4.3[2700]: entering     mysql cmd_defineconnection
Oct 20 09:15:43 mod_sql/4.3[2700]:   name: 'default'
Oct 20 09:15:43 mod_sql/4.3[2700]:   user: 'ftpd'
Oct 20 09:15:43 mod_sql/4.3[2700]:   host: 'localhost'
Oct 20 09:15:43 mod_sql/4.3[2700]:     db: 'ftpd'
Oct 20 09:15:43 mod_sql/4.3[2700]:   port: '3306'
Oct 20 09:15:43 mod_sql/4.3[2700]:    ttl: '0'
Oct 20 09:15:43 mod_sql/4.3[2700]: exiting  mysql cmd_defineconnection
Oct 20 09:15:43 mod_sql/4.3[2700]: connection 'default' successfully established
Oct 20 09:15:43 mod_sql/4.3[2700]: mod_sql engine     : on
Oct 20 09:15:43 mod_sql/4.3[2700]: negative_cache     : off
Oct 20 09:15:43 mod_sql/4.3[2700]: authenticate       : users groups 
Oct 20 09:15:43 mod_sql/4.3[2700]: usertable          : ftpuser
Oct 20 09:15:43 mod_sql/4.3[2700]: userid field       : userid
Oct 20 09:15:43 mod_sql/4.3[2700]: password field     : passwd
Oct 20 09:15:43 mod_sql/4.3[2700]: UID field          : uid
Oct 20 09:15:43 mod_sql/4.3[2700]: GID field          : gid
Oct 20 09:15:43 mod_sql/4.3[2700]: homedir field      : homedir
Oct 20 09:15:43 mod_sql/4.3[2700]: shell field        : shell
Oct 20 09:15:43 mod_sql/4.3[2700]: group table        : ftpgroup
Oct 20 09:15:43 mod_sql/4.3[2700]: groupname field    : groupname
Oct 20 09:15:43 mod_sql/4.3[2700]: grp GID field      : gid
Oct 20 09:15:43 mod_sql/4.3[2700]: grp members field  : members
Oct 20 09:15:43 mod_sql/4.3[2700]: SQLMinUserUID      : 500
Oct 20 09:15:43 mod_sql/4.3[2700]: SQLMinUserGID      : 500
Oct 20 09:15:43 mod_sql/4.3[2700]: SQLDefaultUID      : 65533
Oct 20 09:15:43 mod_sql/4.3[2700]: SQLDefaultGID      : 65533
Oct 20 09:15:43 mod_sql/4.3[2700]: <<< sql_sess_init
Oct 20 09:15:49 mod_sql/4.3[2700]: >>> sql_pre_pass
Oct 20 09:15:49 mod_sql/4.3[2700]: <<< sql_pre_pass
Oct 20 09:15:49 mod_sql/4.3[2700]: >>> cmd_getpwnam
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_escapestring
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_open
Oct 20 09:15:49 mod_sql/4.3[2700]: MySQL client version: 5.5.35
Oct 20 09:15:49 mod_sql/4.3[2700]: MySQL server version: 5.5.35-0ubuntu0.12.04.2
Oct 20 09:15:49 mod_sql/4.3[2700]: MySQL connection character set now 'utf8' (from 'UTF-8')
Oct 20 09:15:49 mod_sql/4.3[2700]: connection 'default' opened
Oct 20 09:15:49 mod_sql/4.3[2700]: connection 'default' count is now 2
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_open
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_close
Oct 20 09:15:49 mod_sql/4.3[2700]: connection 'default' count is now 1
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_close
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_escapestring
Oct 20 09:15:49 mod_sql/4.3[2700]: cache miss for user 'username'
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_select
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_open
Oct 20 09:15:49 mod_sql/4.3[2700]: connection 'default' count is now 2
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_open
Oct 20 09:15:49 mod_sql/4.3[2700]: query "SELECT userid, passwd, uid, gid, homedir, shell FROM ftpuser WHERE (userid='username') LIMIT 1"
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_close
Oct 20 09:15:49 mod_sql/4.3[2700]: connection 'default' count is now 1
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_close
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_select
Oct 20 09:15:49 mod_sql/4.3[2700]: cache miss for user 'username'
Oct 20 09:15:49 mod_sql/4.3[2700]: user 'username' cached
Oct 20 09:15:49 mod_sql/4.3[2700]: + pwd.pw_name  : username
Oct 20 09:15:49 mod_sql/4.3[2700]: + pwd.pw_uid   : 5500
Oct 20 09:15:49 mod_sql/4.3[2700]: + pwd.pw_gid   : 5500
Oct 20 09:15:49 mod_sql/4.3[2700]: + pwd.pw_dir   : /srv/backups/files
Oct 20 09:15:49 mod_sql/4.3[2700]: + pwd.pw_shell : /sbin/nologin
Oct 20 09:15:49 mod_sql/4.3[2700]: <<< cmd_getpwnam
Oct 20 09:15:49 mod_sql/4.3[2700]: >>> cmd_gid2name
Oct 20 09:15:49 mod_sql/4.3[2700]: cache miss for GID '5500'
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_select
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_open
Oct 20 09:15:49 mod_sql/4.3[2700]: connection 'default' count is now 2
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_open
Oct 20 09:15:49 mod_sql/4.3[2700]: query "SELECT groupname FROM ftpgroup WHERE (gid = 5500) LIMIT 1"
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_close
Oct 20 09:15:49 mod_sql/4.3[2700]: connection 'default' count is now 1
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_close
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_select
Oct 20 09:15:49 mod_sql/4.3[2700]: <<< cmd_gid2name
Oct 20 09:15:49 mod_sql/4.3[2700]: >>> cmd_getgroups
Oct 20 09:15:49 mod_sql/4.3[2700]: cache hit for user 'username'
Oct 20 09:15:49 mod_sql/4.3[2700]: cache miss for GID '5500'
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_select
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_open
Oct 20 09:15:49 mod_sql/4.3[2700]: connection 'default' count is now 2
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_open
Oct 20 09:15:49 mod_sql/4.3[2700]: query "SELECT groupname FROM ftpgroup WHERE (gid = 5500) LIMIT 1"
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_close
Oct 20 09:15:49 mod_sql/4.3[2700]: connection 'default' count is now 1
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_close
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_select
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_escapestring
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_open
Oct 20 09:15:49 mod_sql/4.3[2700]: connection 'default' count is now 2
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_open
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_close
Oct 20 09:15:49 mod_sql/4.3[2700]: connection 'default' count is now 1
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_close
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_escapestring
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_select
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_open
Oct 20 09:15:49 mod_sql/4.3[2700]: connection 'default' count is now 2
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_open
Oct 20 09:15:49 mod_sql/4.3[2700]: query "SELECT groupname, gid, members FROM ftpgroup WHERE (members = 'username' OR members LIKE 'username,%' OR members LIKE '%,username' OR members LIKE '%,username,%')"
Oct 20 09:15:49 mod_sql/4.3[2700]: entering     mysql cmd_close
Oct 20 09:15:49 mod_sql/4.3[2700]: connection 'default' count is now 1
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_close
Oct 20 09:15:49 mod_sql/4.3[2700]: exiting  mysql cmd_select
Oct 20 09:15:49 mod_sql/4.3[2700]: <<< cmd_getgroups
Oct 20 09:15:51 mod_sql/4.3[2700]: >>> cmd_auth
Oct 20 09:15:51 mod_sql/4.3[2700]: entering     mysql cmd_escapestring
Oct 20 09:15:51 mod_sql/4.3[2700]: entering     mysql cmd_open
Oct 20 09:15:51 mod_sql/4.3[2700]: connection 'default' count is now 2
Oct 20 09:15:51 mod_sql/4.3[2700]: exiting  mysql cmd_open
Oct 20 09:15:51 mod_sql/4.3[2700]: entering     mysql cmd_close
Oct 20 09:15:51 mod_sql/4.3[2700]: connection 'default' count is now 1
Oct 20 09:15:51 mod_sql/4.3[2700]: exiting  mysql cmd_close
Oct 20 09:15:51 mod_sql/4.3[2700]: exiting  mysql cmd_escapestring
Oct 20 09:15:51 mod_sql/4.3[2700]: cache hit for user 'username'
Oct 20 09:15:51 mod_sql/4.3[2700]: >>> cmd_check
Oct 20 09:15:51 mod_sql/4.3[2700]: checking password using SQLAuthType 'Crypt'
Oct 20 09:15:51 mod_sql/4.3[2700]: 'Crypt' SQLAuthType handler reports success
Oct 20 09:15:51 mod_sql/4.3[2700]: cache hit for user 'username'
Oct 20 09:15:51 mod_sql/4.3[2700]: <<< cmd_check
Oct 20 09:15:51 mod_sql/4.3[2700]: <<< cmd_auth
Oct 20 09:15:51 mod_sql/4.3[2700]: >>> cmd_getpwnam
Oct 20 09:15:51 mod_sql/4.3[2700]: cache hit for user 'username'
Oct 20 09:15:51 mod_sql/4.3[2700]: <<< cmd_getpwnam
Oct 20 09:15:51 mod_sql/4.3[2700]: >>> log_master (SQLLog_PASS)
Oct 20 09:15:51 mod_sql/4.3[2700]: >>> process_named_query 'updatecount'
Oct 20 09:15:51 mod_sql/4.3[2700]: entering     mysql cmd_escapestring
Oct 20 09:15:51 mod_sql/4.3[2700]: entering     mysql cmd_open
Oct 20 09:15:51 mod_sql/4.3[2700]: connection 'default' count is now 2
Oct 20 09:15:51 mod_sql/4.3[2700]: exiting  mysql cmd_open
Oct 20 09:15:51 mod_sql/4.3[2700]: entering     mysql cmd_close
Oct 20 09:15:51 mod_sql/4.3[2700]: connection 'default' count is now 1
Oct 20 09:15:51 mod_sql/4.3[2700]: exiting  mysql cmd_close
Oct 20 09:15:51 mod_sql/4.3[2700]: exiting  mysql cmd_escapestring
Oct 20 09:15:51 mod_sql/4.3[2700]: entering     mysql cmd_update
Oct 20 09:15:51 mod_sql/4.3[2700]: entering     mysql cmd_open
Oct 20 09:15:51 mod_sql/4.3[2700]: connection 'default' count is now 2
Oct 20 09:15:51 mod_sql/4.3[2700]: exiting  mysql cmd_open
Oct 20 09:15:51 mod_sql/4.3[2700]: query "UPDATE ftpuser SET count=count+1, accessed=now() WHERE userid='username'"
Oct 20 09:15:51 mod_sql/4.3[2700]: entering     mysql cmd_close
Oct 20 09:15:51 mod_sql/4.3[2700]: connection 'default' count is now 1
Oct 20 09:15:51 mod_sql/4.3[2700]: exiting  mysql cmd_close
Oct 20 09:15:51 mod_sql/4.3[2700]: exiting  mysql cmd_update
Oct 20 09:15:51 mod_sql/4.3[2700]: <<< process_named_query 'updatecount'
Oct 20 09:15:51 mod_sql/4.3[2700]: <<< log_master (SQLLog_PASS)
Oct 20 11:04:16 mod_sql/4.3[2700]: entering     mysql cmd_exit
Oct 20 11:04:16 mod_sql/4.3[2700]: entering     mysql cmd_close
Oct 20 11:04:16 mod_sql/4.3[2700]: connection 'default' closed
Oct 20 11:04:16 mod_sql/4.3[2700]: connection 'default' count is now 0
Oct 20 11:04:16 mod_sql/4.3[2700]: exiting  mysql cmd_close
Oct 20 11:04:16 mod_sql/4.3[2700]: exiting  mysql cmd_exit

C# エラー:

2014-10-20 11:04:15 System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive..

スタックオーバーフローを検索したところ、C# のタイムアウトとそれに伴ういくつかのバグが見つかりました。

しかし、マイクロソフトがその問題を解決できないというのは本当ですか? 問題を解決するのは難しすぎますか?

4

1 に答える 1

0

これは、コマンド チャネルでの TCP タイムアウトのように聞こえます。非アクティブのため、TCP スタックによって切断が開始されます。これを防ぐために、クライアントはいわゆるキープアライブ信号を送信する必要があります。FTP の場合、NOOP コマンドが使用されます。ただし、.NET フレームワークの組み込み FTP クライアントでこれを実行できるかどうかはわかりません。

于 2014-10-21T10:40:37.260 に答える