Я не могу открыть.pdf, .doc и т. Д. Файл с других серверов через SFTP, используя rebex

У меня есть два разных сервера, как показано ниже.

1. WebServer - где находится мое приложение

2. FileServer - где мои все загруженные файлы находятся в перкулярной папке / папке

Теперь в моем веб-приложении я создал одну страницу, которая отображает все загруженные файлы из FileServer (который я загрузил).

Но проблема в том, что когда я пытаюсь открыть / прочитать этот файл, я не могу. У меня есть все права на SFTP. и я получаю ниже вопрос в блоке Try-catch. "Невозможно оценить выражение, потому что код оптимизирован или собственный фрейм находится над стеком вызовов". Я использовал REBEX для загрузки и скачивания файлов.

Примечание: я могу открывать простой текстовый файл (.txt), но не другие форматированные файлы, такие как (.PDF, .docx, .jpg и т. Д.)

Мой код чтения файла, как показано ниже.

protected void LinkButton1_Click(object sender, EventArgs e)
        {    
          try
                {
                    LinkButton lbtn = (LinkButton)sender;
                    using (Sftp _sftp = new Sftp())
                    {
                        _sftp.Connect(serverNm, 22);
                        _sftp.Login(username, password);
                        _sftp.ChangeDirectory(currentDirectory);

                        Stream stream = _sftp.GetStream(lbtn.ToolTip.ToString(), FileMode.Open, FileAccess.Read);
                        StreamReader sourceStream = new StreamReader(stream);
                        Byte[] buffer = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());

                        Response.Buffer = true;
                        if (lbtn.ToolTip.IndexOf(".pdf") > 0)
                        {
                            Response.ContentType = "application/pdf";
                        }
                        else if (lbtn.ToolTip.IndexOf(".txt") > 0)
                        {
                            Response.ContentType = "text/plain";
                        }
                        else if (lbtn.ToolTip.IndexOf(".xls") > 0)
                        {
                            Response.ContentType = "application/ms-excel";
                        }
                        else if (lbtn.ToolTip.IndexOf(".doc") > 0)
                        {
                            Response.ContentType = "application/msword";
                        }
                        else if (lbtn.ToolTip.IndexOf(".jpeg") > 0)// || lbtn.ToolTip.IndexOf(".jpg") > 0)
                        {
                            Response.ContentType = "image/jpeg";
                        }
                        else if (lbtn.ToolTip.IndexOf(".jpg") > 0)
                        {
                            Response.ContentType = "image/jpg";
                        }
                        else if (lbtn.ToolTip.IndexOf(".bmp") > 0)
                        {
                            Response.ContentType = "image/png";
                        }

                        Response.AddHeader("Content-Length", "attachment;filename=" + buffer.Length.ToString());
                        Response.BinaryWrite(buffer);
                        Response.End();                    

                    }
                }
                catch (Exception ex)
                {

                }
}

Так что любой может помочь решить эту проблему.

Я использую последний браузер Mozila.

Спасибо.

1 ответ

Можно ли опубликовать полную трассировку стека исключения здесь? Вы можете получить трассировку стека, изменив блок catch следующим образом:

            try
            {
                //... your code
            }
            catch (Exception ex)
            {
                Response.ContentType = "text/plain";
                Response.Write(ex.ToString());
                Response.End();
            }
Другие вопросы по тегам