質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

1回答

7232閲覧

FluentFTPを使って、serva経由で、ローカルフォルダにアップロードしたいです。

aikawajun

総合スコア14

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

0クリップ

投稿2021/02/08 05:52

FTPSクライアント機能を持ったアプリケーションを作成しようと思ったのですが、調べてみたところ、新しい開発にはFtpWebRequestクラスを使用しないことと公式から発表されているようで、FluentFTPを使うと良いとあったため、こちらを使うことにしました。
サーバーはservaと言うフリーのソフトが簡易的に使えると書いてあり、実際に、ログインまでは出来ました。

ただ、実際に適当な1.pingと言うデータをserva経由で任意の箇所に入れようとしたのですが、上手く行かずエラーとなってきました。

550 No such file.

と表示され、何度も確認してファイル自体はあるのに、何故かファイルが無くてエラーとなっております。
ソース内の設定回りの「要求の完了後に接続を閉じる箇所」より下に関してコメントアウトしているのは、最初ログインすらできず、他のソースが無いか調べて見たところ、こちらの箇所が記載がなかったため、コメントアウトしております。

もし、実際にservaソフトを使ってローカルのデータをアップデートしたりしたことがある方がいらっしゃいましたら、ご教授頂けないでしょうか。

よろしくお願いいたします。

C#

1using FluentFTP; 2using System; 3using System.Collections.Generic; 4using System.ComponentModel; 5using System.Data; 6using System.Drawing; 7using System.Linq; 8using System.Net; 9using System.Security.Authentication; 10using System.Text; 11using System.Threading.Tasks; 12 13 14 15 FtpClient client = new FtpClient(); 16 17 client.Host = "192.168.1.116"; 18 client.Port = 21; 19 20 // 資格情報の設定 21 client.Credentials = new NetworkCredential("testuser", "testuser"); 22 /* 23 // 要求の完了後に接続を閉じる 24 client.SocketKeepAlive = false; 25 // Explicit設定 26 client.EncryptionMode = FtpEncryptionMode.Explicit; 27 // プロトコルはTls 28 client.SslProtocols = SslProtocols.Tls; 29 // 接続タイムアウトを5秒に設定 30 client.ConnectTimeout = 5000; 31 // 証明書の内容を確認しない 32 client.ValidateCertificate += new FtpSslValidation(OnValidateCertificate); 33 */ 34 try 35 { 36 // 接続 37 client.Connect(); 38 // ファイルのアップロード 39 client.UploadFile(@"C:\Users\Documents\ftpupload\1.png", "1.png"); 40 41 } 42 catch (Exception ex) 43 { 44 //MessageBox.Show(ex.Message); 45 } 46 finally 47 { 48 // 切断 49 client.Disconnect(); 50 // 解放 51 client.Dispose(); 52 } 53

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/02/08 06:22 編集

・UploadFileのサーバ側のパスをフルパスで指定してみる。 ・WinSCPなどの有名どころのクライアントを使用して転送出来るかどうか。転送出来るなら接続ログを見取る。(ログレベルは高めに設定する) ・サーバ側のアクセスログが確認出来るなら、そちらも確認する。 ・IISなど別のFTPサーバを使用した場合はどうか。 もっと色々調べてみては。
aikawajun

2021/02/08 06:31

・UploadFileのサーバ側のパスをフルパスで指定してみる。 →フルパスで指定しましたが、そちらも同じ結果でした。 ・WinSCPなどの有名どころのクライアントを使用して転送出来るかどうか。転送出来るなら接続ログを見取る。(ログレベルは高めに設定する) →FileZillaで転送確認をしたところ普通に転送出来ました。 ・サーバ側のアクセスログが確認出来るなら、そちらも確認する。 →サーバ側のアクセスログが質問の「550 No such file.」になります。 ・IISなど別のFTPサーバを使用した場合はどうか。 →これだけテストしていない為、確認してみます。
退会済みユーザー

退会済みユーザー

2021/02/08 06:42 編集

> ・WinSCPなどの有名どころのクライアントを使用して転送出来るかどうか。転送出来るなら接続ログを見取る。(ログレベルは高めに設定する) > →FileZillaで転送確認をしたところ普通に転送出来ました。 FileZillaのログは確認しました?UploadFile実行時の出力ウィンドウに出るコマンド内容と突き合せてみた方がよいと思いますが。
guest

回答1

0

自己解決

ログ及びパスを確認して修正したところ、アップロード出来ました。

投稿2021/03/25 07:54

aikawajun

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問