Web Service - FTP

venerdì 15 settembre 2006 - 14.48

erik77 Profilo | Senior Member

Ciao ragazzi,
dovrei creare un web service che permetta il traferimento di un file (anche 20mb) da un server all'altro.
Come posso procedere?

grazie
ciao

Brainkiller Profilo | Guru

>Ciao ragazzi,
>dovrei creare un web service che permetta il traferimento di
>un file (anche 20mb) da un server all'altro.

Anche secondo me è meglio utilizzare protocollo FTP.
Però la cosa è possibile anche tramite Web Service. Il Web Service ti consente di ricevere dei dati binari o testo e scriverli su disco (di fatto assimilabile a un trasferimento di file). Colui che invia però generalmente è una applicazione da command line o windows.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

erik77 Profilo | Senior Member

grazie...
comunque io dovrei sviluppare questo web service con il FrameWork 1.1

ciao

Brainkiller Profilo | Guru

>grazie...
>comunque io dovrei sviluppare questo web service con il FrameWork 1.1

Per quanto mi riguarda la risposta è uguale sia per il Framework 2.0 che per l'1.1.

Per quanto riguarda Coach è chiaro che la classe FTP esiste solo nel Framework 2.0, quindi questa strada è impercorribile.

Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

ciroverde Profilo | Newbie

credo che ti convenga gestire una sessione FTP all'interno del web service.

1) invochi il web service passando dei parametri quali il file da trasferire, FTP server, User e PWD di accesso e directory su cui effettuare la put del file.

2) gestire una sessione FTP dentro il web server.

In questo modo il web server viene utilizzato come un servizio centralizzato che sposta file via FTP.

Che ne pensi ?

erik77 Profilo | Senior Member

grazie per i consigli...
ma non mi è chiaro come gestire il trasferimento file tramite web server...
nel dettaglio come si gestisce?

ciao e grazie

ciroverde Profilo | Newbie

allora cerchiamo di ricapitolare:

1) invochi il web server passando i vari parametri ( per es. server FTP, nome del file , user + pwd ... etc. etc.)

2) all'interno del codice del web server inserisci innanzitutto

using System.Net;
using System.Net.socket;

e poi inizi una sessione col server FTP tramite socket

Socket ClienteFTP = null ;
IPEndPoint IPterminale = null;
try{
ClienteFTP =
new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPterminale = new IPEndPoint(Dns.Resolve(ServerFTP).AddressList[0],21);
ClienteFTP.Connect(IPterminale);
}

questa è la parte iniziale della sessione, poi dipende da quello che devi fare col protocollo FTP.

Ti consiglio di cercare RFC relativo al protocollo FTP.

Ciao

Ciro

Brainkiller Profilo | Guru

>grazie per i consigli...
>ma non mi è chiaro come gestire il trasferimento file tramite
>web server...
>nel dettaglio come si gestisce?

Mi sa che la soluzione di instanziare una sessione FTP dentro un Web Service è la prima cosa da evitare. Il WebService così come le applicazioni web sono per loro natura "disconesse" e quindi non è auspicabile l'uso all'interno di comandi quali l'FTP anche perchè non ci sarebbe un controllo della applicazione.

Al di là di questo, o ti crei un client FTP ed è una cosa giusta, oppure usi il Web Service. Come ti ho già indicato è abbastanza semplice. Nello sviluppo del Web Service crei un WebMethod che accetti un array di byte[]. Una volta creato lo compili. Ti crei un client WinForm, aggiungi il WebService appena creato, leggi con la classe BinaryReader un file su disco e richiami il metodo del WebService passandogli lo stream binario dei dati.

Dall'altra parte il WebSErvice riceve lo stream dei dati e lo riscrive su disco.
Hai fatto un trasferimento di file da un server ad un altro.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

ciroverde Profilo | Newbie

La risposta è da manuale per quel che riguarda l'uso dei web server.

Però presuppone che ci sia un dialogo tra 2 web server.

Il problema, da come l'ho inquadrato io, è costituito dall'interazione con un server FTP che non comunica come un web server.

In questo contesto, avere un web server che
1) apre una sessione FTP
2) trasferisce il file e
3) chiude la sessione

libera gli utenti dalla necessità di scambiare file tramite FTP in quanto la comunicazione avviene tra l'utente e il web server ( che mi fornisce il 'servizio' di dialogare col server FTP ).

Ciro
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5