Мой клиентский компьютер не имеет доступа в Интернет, но я пытаюсь вызвать метод загрузки через веб-сервис, он успешно повторяется, но файл не загружается - PullRequest
0 голосов
/ 15 февраля 2019

Мое приложение используется для загрузки файлов из Интернета и обработки их в соответствии с некоторой логикой, но по соображениям безопасности мой клиентский компьютер не имеет доступа в Интернет, поэтому я пытаюсь загрузить его через веб-службу, но не могу загрузить файл.

публичная строка 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;
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...