ASP.NETWebサービスに単純なクラスがあります。ローカルシステムでも、セットアップした開発環境でも正常に動作しますが、運用サーバーでファイルを送信しようとすると、次のエラーが発生します。
Exception Error: The underlying provider failed on Open.
呼び出されているコードは次のとおりです。
public class FTPHelper
{
public static string SendFile(string ftpuri, string username, string password, string ftppath, string filename, byte[] datatosend)
{
if (ftppath.Substring(ftppath.Length - 1) != "/")
{
ftppath += "/";
}
FtpWebRequest ftp = (FtpWebRequest) FtpWebRequest.Create( ftpuri + ftppath + filename);
ftp.Method = WebRequestMethods.Ftp.UploadFile;
ftp.Credentials = new NetworkCredential(username, password);
ftp.UsePassive = true;
ftp.ContentLength = datatosend.Length;
Stream requestStream = ftp.GetRequestStream();
requestStream.Write(datatosend, 0, datatosend.Length);
requestStream.Close();
FtpWebResponse ftpresponse = (FtpWebResponse)ftp.GetResponse();
return ftpresponse.StatusDescription;
}
}
この問題のトラブルシューティングを行うにはどうすればよいですか。サーバーは、Windows2008Serverで実行されているIIS7.5です。.NET4.0を使用しています。FtpWebResponseが機能しない単純な理由はありますか?
それがセキュリティの問題である場合、それを回避する方法はありますか?これをすぐに機能させる必要があります。