używam następujące metody, aby wyświetlić zawartość folderu:Podłączenie do tego samego serwera z różnych nazw użytkownika
private void TestFtp()
{
try
{
// List all of the files from FTP
FtpWebRequest ftprequest = (FtpWebRequest)WebRequest.Create(new Uri("ftp://m3database/recover/"));
ftprequest.Credentials = new NetworkCredential("myusername1", "********");
ftprequest.Method = WebRequestMethods.Ftp.ListDirectory;
ftprequest.UsePassive = false;
ftprequest.Proxy = null;
using (var resp = ftprequest.GetResponse())
{
StreamReader reader = new StreamReader(resp.GetResponseStream());
MessageBox.Show(reader.ReadToEnd());
}
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
}
łączę na jednym serwerze Linux za pośrednictwem FTP. Korzystam z poświadczeń do połączeń myusername1
i myusername2
.
jestem w stanie wyświetlić zawartość katalogu podczas korzystania z tej funkcji, jeśli używam myusername1
poświadczeń, jednak jeśli mogę użyć myusername2
to pojawia się z powodu następującego błędu:
The remote server returned an error: (503) Bad sequence of commands.
rzeczy, które próbowałem:
- Próbowałem ustawić
ftprequest.KeepAlive = false
. - Próbowałem używać wszystkich permutacji UsePassive, Proxy itp.
- Jestem w stanie połączyć się z obu nazwami użytkowników za pomocą FileZilla Z włączonym bezpiecznym FTP i oba działają. Bez włączonego FTP żadne z nich się nie połączy.
To jest dziwne, że mój kod łączy się przy użyciu myusername1
bez włączonego SSL w moim kodzie.
Podsumowując:
myusername1
imyusername2
nie będzie łączyć na FileZilla bez bezpiecznego FTP obsługującego.myusername1
działa w ramach mojej metody C# bez włączonejftprequest.EnableSsl
.myusername2
nie będzie działać w mojej metodzie C#, niezależnie od tego, czy jest włączoneftprequest.EnableSsl
.- Wyjątek jest wywoływany na linii mojego oświadczenia
using()
.
Coś innego Właśnie zauważyłem, kiedy unoszą się nad moim ftprequest
, to pokazuje NotSupportedException, ale wydaje się to niezależnie od tego, który zestaw poświadczeń używam
Gdybym unoszą się nad moim początkowym ftprequest
podczas korzystania myusername2
, pokazuje wyjątek rzucony przed moim using()
:
FtpWebRequest.ContentType jest udokumentowane jak zawsze rzuca NotSupportedException, tak że prawdopodobnie nie znaczy wiele. Mogę myśleć tylko o używaniu WireSharka, żeby zobaczyć, co się dzieje na drucie. –
główne pytanie brzmi .. czy transfer plików zakończył się sukcesem? – MethodMan
Mogę wyświetlić zawartość katalogu przy użyciu "myusername1", ale nie "myusername2", nawet jeśli jest to ten sam serwer. – Luke