Я добавляю функциональность на сайт, чтобы участники могли загружать собственные фотографии в свой профиль. Проблема, с которой я столкнулась, - это моя FTP-функция, которая отлично работает, когда я запускаю ее собственный localhost. Однако после того, как я разместил сайт на сервере GoDaddy и попытаюсь выполнить FTP, он не работает. Я получаюASP.NET C# FTP to GoDaddy
Невозможно подключиться к удаленному серверу
Вот мой код:
protected string savePath = Path.GetTempPath();
protected string saveThumbPath = Path.GetTempPath() + "/Thumb";
Guid g;
protected void UploadButton_Click(object sender, EventArgs e)
{
bool worked = false;
if (FileUploadControl.HasFile)
{
try
{
g = Guid.NewGuid();
string filename = Path.GetFileName(FileUploadControl.FileName);
Bitmap src = Bitmap.FromStream(FileUploadControl.PostedFile.InputStream) as Bitmap;
Bitmap thumb = Bitmap.FromStream(FileUploadControl.PostedFile.InputStream) as Bitmap;
// Resize the bitmap data
//Create the large image
Bitmap result = ProportionallyResizeBitmap(src, 800, 600);
//string saveName = Server.MapPath(savePath) + g + filename;
string saveName = savePath + g + filename;
result.Save(saveName, ImageFormat.Jpeg);
//Create the thumbnail
result = ProportionallyResizeBitmap(thumb, 200, 150);
//string saveThumbName = Server.MapPath(saveThumbPath) + g + filename;
string saveThumbName = saveThumbPath + g + filename;
result.Save(saveThumbName, ImageFormat.Jpeg);
StatusLabel.Text = "Upload status: File uploaded!";
worked = true;
Thumbholder.Value = "Thumb" + g + filename;
Photoholder.Value = g + filename;
// Get the object used to communicate with the server.
//If the specified proxy is an HTTP proxy. only the DownloadFile, ListDirectory and ListDirectoryDetails commands are supported
//get the object used to communicate with the server
System.Net.FtpWebRequest request = System.Net.WebRequest.Create("ftp://mydomain/newcorvetteclub/Images/" + g + filename) as System.Net.FtpWebRequest;
//this example assumes the FTP site uses anoymous login on
//NetWorkCredentials provides credentials for password-based authentication such as digest, basic, NTLM
request.Credentials = new System.Net.NetworkCredential("username", "password");
//Copy the contents of the file to the request stream
byte[] fileContents = null;
if (FileUploadControl.HasFile)
{
//fileContents = FileUploadControl.FileBytes;
fileContents = File.ReadAllBytes(saveName);
}
else
{
Response.Write("you need to provide a file");
return;
}
request.Method = System.Net.WebRequestMethods.Ftp.UploadFile;
request.ContentLength = fileContents.Length;
//GetReequestStream: retrieves the stream used to upload data to an FTP server.
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
System.Net.FtpWebResponse response = request.GetResponse() as System.Net.FtpWebResponse;
//Response.Write("Upload file complete, status: " + response.StatusDescription);
response.Close();
request = System.Net.WebRequest.Create("ftp://mydomain/newcorvetteclub/Images/Thumb" + g + filename) as System.Net.FtpWebRequest;
request.Credentials = new System.Net.NetworkCredential("username", "password");
if (FileUploadControl.HasFile)
{
fileContents = File.ReadAllBytes(saveThumbName);
}
else
{
Response.Write("you need to provide a file");
return;
}
request.Method = System.Net.WebRequestMethods.Ftp.UploadFile;
request.ContentLength = fileContents.Length;
//GetReequestStream: retrieves the stream used to upload data to an FTP server.
requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
response = request.GetResponse() as System.Net.FtpWebResponse;
//Response.Write("Upload file complete, status: " + response.StatusDescription);
Еще одна странная вещь, что мой почтовый клиент делает что-то подобное. Он отлично работает, пока он запускается через localhost, но затем отключается, когда он запускается с серверов GoDaddy. Любая помощь будет принята с благодарностью.
Я обновил его с помощью части изображения кода, я не уверен, какая строка его выбрасывает, так как она отлично работает при использовании отладчика – tuckerjt07
@ agent-j, используемый им интерфейс «Bitmap» - это мелкая обертка вокруг GDI + , – Amy
Какая строка бросает исключение? GDI + - это графическая библиотека окон и не имеет ничего общего с сетевой связью. – Amy