Мое приложение используется для загрузки файлов из Интернета и обработки их в соответствии с некоторой логикой, но по соображениям безопасности мой клиентский компьютер не имеет доступа в Интернет, поэтому я пытаюсь загрузить его через веб-службу, но не могу загрузить файл.
публичная строка DownloadLink (строковое имя ссылки, строковое имя файла, строковый сегмент) {try {string sbfldr = "";
if (_segpath)
{
//if (segment == "NSE FNO")
//{
// sbfldr = "FNO\\";
//}
//else
//{
// sbfldr = "CASH\\";
//}
sbfldr = segment.Split(' ')[1].ToUpper() + "\\";
}
if (_destpath.LastIndexOf(@"\") + 1 == _destpath.Length)
{
_destpath = _destpath + sbfldr + FileName;
}
else
{
_destpath = _destpath + "\\" + sbfldr + FileName;
}
if (!System.IO.File.Exists(_destpath))
{
Uri uri = new Uri(linkname);
using (WebClient webClient = new WebClient())
{
/* Change for Emkay 30-Apr-2018 issue in new server */
//string prxyname = RegValue(RegistryHive.CurrentUser, @"Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer");
//WebProxy prxy = new WebProxy(prxyname);
//prxy.Credentials = System.Net.CredentialCache.DefaultCredentials;
//webClient.Proxy = prxy;
/*Done*/
webClient.Headers.Add("Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/x-ms-xbap, application/x-ms-application, */*");
webClient.Headers.Add("Accept-Encoding: gzip, deflate");
webClient.Headers.Add("Accept-Language: en-us");
webClient.Headers.Add("User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.1; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)");
//Int64 filesize = 0;
try
{
//webClient.DownloadFile(uri, _destpath);
string Url = "";
Url = Convert.ToString(uri);
// вызов веб-сервиса здесь для загрузки enter code here
WebReference.Service1 ss = new WebReference.Service1 ();ss.Download (Url, _destpath);
FileInfo fldwn = new FileInfo(_destpath);
if (fldwn.Name.ToLower().IndexOf(".zip") > 0 || fldwn.Name.ToLower().IndexOf(".gz") > 0)
{
DelayExe(20);
if (ZipFile.IsZipFile(fldwn.FullName))
{
if (!ZipFile.CheckZip(fldwn.FullName))
{
fldwn.Delete();
return "Invalid Zip File 1.";
}
}
else
{
fldwn.Delete();
return "Invalid Zip File 2.";
}
}
//filesize = fldwn.Length;
//if (filesize < 10000 && FileName.Substring(0,9).ToLower() != "fo_secban")
//{
// fldwn.Delete();
// return "File of Unacceptable Size.";
//}
}
catch (WebException wex)
{
if (wex.Message != "The remote server returned an error: (403) Forbidden.")
{
return "Error: " + wex.Message;
}
else
{
return "File not found.";
}
}
}
return "Success";
}
else
{
return "File Existing.";
}
}
catch (Exception ex)
{
return "Error: " + ex.Message;
}
}
// код веб-сервиса
[WebMethod (Description = "Загрузить файл")] public void Download (строка linkname, string fileName) {попробуй {
WebClient webClient = new WebClient();
//webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
//webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
webClient.DownloadFileAsync(new Uri(linkname), fileName);
}
catch (Exception ex)
{
throw ex;
}
}