Witam!
Walczę już sporo czasu z tym przypadkiem i może ktoś tutaj będzie wiedział co mam z tym zrobić. Tak jak już w poprzednim poście pisałem, mam apkę do robienia kopii zapasowych baz danych MSSQL, które po zapakowaniu wysyłam na chmurę. Znalazł się taki JEDEN przypadek, który ma problem z wysyłaniem po jakimś czasie. W związku z tym, że net u tego człowieka nie należy do super szybkich, trochę to trwa zanim się wysypie.
- Ustawiłem timer na 20:20
- O 20:25 miałem już zapakowany plik (1.75GB), wysyła
- 21:57 - Exception
FUNCTION: UploadFile
MESSAGE: Połączenie podstawowe zostało zakończone: Wystąpił nieoczekiwany błąd przy odbiorze.
SOURCE System
HRESULT: -2146233079
STACKTRACE:
w System.Net.WebClient.UploadFile(Uri address, String method, String fileName)
w System.Net.WebClient.UploadFile(String address, String fileName)
w OptimoBackup.Classes.FTP.UploadFile(MainBackup ftp, String fileName, String path)
w OptimoBackup.Classes.BackupTask.HandleConditionsMetEvent(Object sender, ConditionsMetEventArgs e)
Z początku myślałem, że antywirus (ESET) ale wyłączony był tym razem i dalej nic.
Zrobiłem sobie klasę, aby pomanewrować timeoutem bo z tym też miałem problem właśnie u tego samego człowieka
public class NoKeepAliveWebClient : WebClient
{
protected override WebRequest GetWebRequest(Uri address)
{
var request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
((HttpWebRequest)request).KeepAlive = false;
((HttpWebRequest)request).Timeout = System.Threading.Timeout.Infinite;
}
return request;
}
}
I wysyłam tak:
public static void UploadFile(MainBackup ftp, string fileName, string path)
{
string uploadPath = Host + "u"+ftp.NIP+"/" + fileName;
string fileDir = path + fileName;
using (var webClient = new NoKeepAliveWebClient())
{
webClient.Credentials = new NetworkCredential(User, Password);
webClient.UploadFile(uploadPath, fileDir);
}
}
Co najciekawsze, mam jedną firmę, której zapakowana baza ma ponad 2GB i nie ma z tym żadnego problemu. W sumie mam około 20 takich firm (z mniejszymi bazami) i żaden nie wali takim wyjątkiem. Próbowałem manewrować godzinami, zaporą, antywirusem, sprawdzałem neta i żadnego punktu zaczepienia.
Ktoś? Coś?