Re: WindowsServer2012R2へFTPS接続 ( No.1 ) |
- 日時: 2014/07/16 16:05
- 名前: FUJI
- 追加の情報でございます。
下記のコードでは元のポート番号21を実際のサーバーでバインドしているポート番号n 990に変更しております。 FtpClient = New TKFP.Net.FtpClient(bp, txtAddress.Text, 990)
IIS側でポート番号21としますとFileZillaが接続時に、 「選択されたポートは通常違うプロトコルによって利用されています.」という 警告を出力しますので、FileZillaが既定値と認識する990としております。
|
Re: WindowsServer2012R2へFTPS接続 ( No.2 ) |
- 日時: 2014/07/16 16:17
- 名前: FUJI
- 追加の情報でございます。
貴ホームページのTipsの「通信を暗号化する」のコードサンプルでも 'FTPクライアントクラスの作成 Dim ftp As New TKFP.Net.FtpClient(logon, server, 21) でポート番号は21で書かれていますので、もしやと思い WindowsServerのIISのFTPSのバインドするポート番号を990から21へ変更して サンプルコードのポート番号も FtpClient = New TKFP.Net.FtpClient(bp, txtAddress.Text, 21) 21に戻して接続ししたところ、 それまではFtpClient.Connect()の実行で例外「サーバーへの接続に失敗しました」が スローされて接続できませんでしたが、 FtpClient.Connect()は成功して接続できるようになりました。
ただし、そのあとの ShowFolder()の実行で 「予期せぬエラーが発生しました(code = 534) PROT C Policy requires SSL.」 という例外がスローされております。
|
Re: WindowsServer2012R2へFTPS接続 ( No.3 ) |
- 日時: 2014/07/16 16:34
- 名前: FUJI
- 追加の情報でございます。
>ShowFolder()の実行で >「予期せぬエラーが発生しました(code = 534) PROT C Policy requires SSL.」 >という例外がスローされております。
こちらは具体的には For Each d In CurrentDirectory.GetDirectories() のCurrentDirectory.GetDirectories()からスローされているようでした。
とりあえずPrivate Sub button1_Click()内で接続成功後のShowFolder()の実行を しないようコメントアウトして、ファイルのアップロードを試してみます。
|
Re: WindowsServer2012R2へFTPS接続 ( No.4 ) |
- 日時: 2014/07/16 16:44
- 名前: FUJI
- 追加の情報でございます。
>ファイルのアップロードを試してみます。 ファイルのアップロードは無事に成功しました。
Private Sub button5_Clickのファイルアップロードのコードサンプルでは 最後にShowFolder()の実行がありますので、ここでは前記例外が発生いたします。 よろしければこの例外を回避するお知恵を拝借できれば幸いでございます。
関連しそうな情報ではWindowsServer側のディレクトリ表示スタイルはMS-DOS形式で 追加の表示項目オプションはすべてノーチェックです。 (□仮想ディレクトリ・□空き容量・□西暦4桁表示)
サンプルコード側ではPrivate Sub button1_Click内で下記のようにしております。
'LIST情報の解析クラスを指定 'FtpClient.ListDataLoader = New TKFP.IO.UnixListDataLoader '標準のFTP(デフォルト) FtpClient.ListDataLoader = New TKFP.IO.MsdosListDataLoader 'IISでディレクトリ表示スタイルをMS-DOSとした場合
'日本語ファイル名の文字コードを指定 FtpClient.FileNameCharset = "sjis" 'シフトJIS(デフォルト)
'デバッグ用のログ出力ファイルを指定 FtpClient.DebugLogFileName = "d:\log.txt"
よろしくお願いいたします。
|
Re: WindowsServer2012R2へFTPS接続 ( No.5 ) |
- 日時: 2014/07/16 16:58
- 名前: FUJI
- 追加の情報でございます。
サンプルコード側ではPrivate Sub button1_Click内で下記のように
'FTP over SSL/TLSを使用する場合は以下のように設定します FtpClient.AuthenticationProtocol = TKFP.Net.AuthenticationProtocols.Explicit_TLS FtpClient.IsFileTransferEncrypted = True FtpClient.IsListTransferEncrypted = True AddHandler FtpClient.CertificateValidation, AddressOf FtpClient_CertificateValidation
FtpClient.IsListTransferEncrypted = Trueを追加しましたところ CurrentDirectory.GetDirectories()も正常動作するようになりました。
お騒がせいたしました。
|
Re: WindowsServer2012R2へFTPS接続 ( No.6 ) |
- 日時: 2014/07/16 18:01
- 名前: FUJI
- お世話になります。
ちなみにポート番号990ではTKFP.DLLの1.4.4は動作するようにはならない ようでしたでしょうか? 参考に教えていただければと思います。
よろしくお願いいたします。
|
Re: WindowsServer2012R2へFTPS接続 ( No.7 ) |
- 日時: 2014/07/16 23:07
- 名前: Toki◆pRU.c9X.EOI
- FtpClient.AuthenticationProtocol = TKFP.Net.AuthenticationProtocols.Explicit_TLS
を FtpClient.AuthenticationProtocol = TKFP.Net.AuthenticationProtocols.Explicit_SSL にすると出来ると思います
|
Re: WindowsServer2012R2へFTPS接続 ( No.8 ) |
- 日時: 2014/07/17 14:25
- 名前: FUJI
- お世話になります。
お忙しいところわざわざご回答ありがとうございます。 ご教授いただいたTKFP.Net.AuthenticationProtocolsのあたりを変更しましたところ
FtpClient.AuthenticationProtocol = TKFP.Net.AuthenticationProtocols.Implicit
とすることで無事に990で接続できました。 IIS的にはポート番号990でバインドするとImplicitモードになるという仕様のようでした。
コメントありがとうございました。
|