QA@IT

WindowsServer 2012からBASP21を使ってのFTP転送方法

4739 PV

itaと申します。いつも質問ばかりですみません。

ASPプログラムから自作COMでBASP21のFTPメソッドを使い、FTPサイトにファイルを転送するページを作成し、運用していました。
この度、下記の環境に移植した処、ファイル転送ができない事態に陥りました。
対応方法を教えて下さい。

環境
旧環境:(正常に動作していた)
 OS:Windows Server 2003(32Bit)
 ASP:レガシーASP +IIS5
 COM:自作COM+BASP21
 転送先FTP:同一

新環境:
 OS:Windows Server 2012R2(64Bit)
 ASP:レガシーASP(旧環境と同一)+IIS8
 COM:自作COM+BASP21(旧環境と同一)
 転送先FTP:同一

現状:
BASP21自体は、問題なく動作しており、他のメール送信なども動作できております。
FTP転送に関しても、connectやcommand(MKD〜)などもできています。
しかし、ftp.putfileメソッドでの転送を行うと、FTP先にはファイルはできますが、
サイズが0となり、ftp.putfileの戻り値も0となり、「該当ファイルなし」となります。

又、確認の為、FFFTPというツールを使い、マニュアルでファイルを転送することは
正常にできます。

質問
1.この現象からファイアーオール関連が関係しているのでしょうか?
  もし、そうだとしたら対処方法を教えて下さい。

2.FFFTPで転送できるということはファイアオールに関係ないということ
  でしょうか?

非常に困っております、よろしくお願いいたします。

  • 新たな質問をする前に過去の質問に対して回答によって解決したものはベストアンサーを付けてください。(自己解決の場合はどう解決したかを自分で回答してそれをベストアンサーにしてください。未解決なら無理に解決済みにしなくても大丈夫です。)
    http://qa.atmarkit.co.jp/about
    -

回答

回答ありがとうございます。
又、お礼が大変遅くなり申し訳ありません。
結局、ファイアーウォールの設定を解除することでうまく行っていきました。
社内利用なので、外側のネットワークで守られているということなので、解除のままでも問題ないそうで、解除のまま運用しています。

ありがとうございました。

編集 履歴 (0)

オールではなくウォールですね。

  1. そうかもしれませんし、そうではないかもしれません。
    FTPはポートを複数使うため、パッシブ転送かどうかによっても状況が異なります。

  2. 説明だけでは同一の条件でFTP転送を行ったかが断定できないのではっきりとは言えません。
    よくあるケースではFTPには転送モードがあるのですが、ライブラリとFFFTPでPASVかそうでないかが違う場合があります。
    また、プログラムでポートを指定しているかいないか、FFFTPでのポート指定と同じかも気にする必要があります。
    少なくとも言えるのは、FFFTPで転送ができているなら同じ設定にできればライブラリで転送できそうだということだけです。

FFFTPは通信ログがでていると思います。お使いのライブラリで通信ログが出力できるならそれと見比べるといいでしょう。
今調べてみましたが、OpenLogとかCloseLogで出力できそうです。ログじゃなくても応答も見れそうですね。
結果コードも確認してなければ確認してください。
そのライブラリは使ったことがありませんがよく耳にするので調べればログの出力方法は見つかるんじゃないかと思います。

ファイアウォール以外の可能性としてはプログラムから転送したいファイルがオープンできていない可能性も考えられます。

とりあえずはライブラリでログを出してみてエラーメッセージがないか確認するといいのではないでしょうか。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。