0

私を助けてください、私は非常に大きな問題を抱えています。

asp.net c#を使用してgodaddyftpサーバーにファイルをアップロードしたい。Visual Studioでアプリケーションを実行すると、ファイルはftpサーバーで正常に作成されますが、(www.domain / page.aspx)などのURLを使用してこのファイルを直接作成すると、次のエラーが発生します(asp.net 4.0を使用)。

リモートサーバーに接続できません

そして、asp.net 3.5を使用すると、このエラーが発生します。

タイプ'System.Net.WebPermission、System、Version = 2.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089'のアクセス許可の要求が失敗しました。

私を助けてください。

4

1 に答える 1

1

FTP にアクセスできる資格情報を使用していることを確認してください。また、URL はおそらくftp://www.domain.com/のようなものになるでしょう。

過去に使用した FTP コードを次に示します。

public class FTP
{
    private String Username { get; set; }
    private String Password { get; set; }
    private String Host { get; set; }
    private Int32 Port { get; set; }

    public FTP(String username, String password, String host, Int32 port)
    {
        Username = username;
        Password = password;
        Host = host;
        Port = port;
    }

    private Uri BuildServerUri(string Path)
    {
        return new Uri(String.Format("ftp://{0}:{1}/{2}", Host, Port, Path));
    }

    /// <summary>
    /// Upload a byte[] to the FTP server
    /// </summary>
    /// <param name="path">Path on the FTP server (upload/myfile.txt)</param>
    /// <param name="Data">A byte[] containing the data to upload</param>
    /// <returns>The server response in a byte[]</returns>
    private byte[] UploadData(string path, byte[] Data)
    {
        // Get the object used to communicate with the server.
        WebClient request = new WebClient();

        try
        {
            // Logon to the server using username + password
            request.Credentials = new NetworkCredential(Username, Password);
            return request.UploadData(BuildServerUri(path), Data);
        }
        finally
        {
            if (request != null)
                request.Dispose();
        }
    }

    /// <summary>
    /// Load a file from disk and upload it to the FTP server
    /// </summary>
    /// <param name="ftppath">Path on the FTP server (/upload/myfile.txt)</param>
    /// <param name="srcfile">File on the local harddisk to upload</param>
    /// <returns>The server response in a byte[]</returns>
    public byte[] UploadFile(string ftppath, string srcfile)
    {
        // Read the data from disk
        FileStream fs = new FileStream(srcfile, FileMode.Open);
        try
        {
            byte[] FileData = new byte[fs.Length];

            int numBytesToRead = (int)fs.Length;
            int numBytesRead = 0;
            while (numBytesToRead > 0)
            {
                // Read may return anything from 0 to numBytesToRead.
                int n = fs.Read(FileData, numBytesRead, numBytesToRead);

                // Break when the end of the file is reached.
                if (n == 0) break;

                numBytesRead += n;
                numBytesToRead -= n;
            }

            numBytesToRead = FileData.Length;

            // Upload the data from the buffer
            return UploadData(ftppath, FileData);
        }
        finally
        {
            if (fs != null)
                fs.Close();
            if (fs != null)
                fs.Dispose();
        }
    }
}
于 2012-05-15T14:24:00.207 に答える