0

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が機能しない単純な理由はありますか?

それがセキュリティの問題である場合、それを回避する方法はありますか?これをすぐに機能させる必要があります。

4

1 に答える 1

0

これはセキュリティの問題であり、Webサイトを実行しているユーザーにはFTP接続を確立する権限がありませんでした。私はプログラマーであり、Webサイトの管理者ではないため、これを実現する方法がわかりませんでした。IISでMicrosoftのIISヘルプを検索した後、ようやくそれを通り抜けました。ユーザーを変更するための解決策は、SuperUserにあります。

https://superuser.com/q/307168/68967

誰かがより良い解決策を持っているなら、答えてください。これがセキュリティの問題を引き起こすと誰かが感じた場合も、より多くの情報を投稿してください。

于 2011-07-06T17:38:56.220 に答える