[c#]Problema con remoting

domenica 06 luglio 2008 - 17.04

program Profilo | Junior Member

Ciao sto realizzando un programmino con il remotig diviso in client e server.
Allora il client effettua l'invio di una stringa al server.
Effettuo una connessione di questo tipo:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Volevo pero fare in modo che se il server non è in esecuzione il client se ne accorga catturando l'eccezione.
Quando pero avvio il client e non il server e provo a inviare i dati dal client visual studio mi da errore di tipo WebException.
Ho cercato quindi con try e catch di catturare l'eccezione ma non funziona non venendo catturata.


try { Thread workerThread = new Thread((this.t.threadwrite)); workerThread.Start(txtbox.Text); } catch (WebException) { MessageBox.Show("Catturata!"); //non viene catturato alcun che... }


Qualcuno puo darmi una mano?
Cosa sbaglio?
Vi posto il link al mio progetto....nel caso vogliate darvi un occhiata per capire meglio...
http://rapidshare.com/files/127317775/esempio.zip.html

Grazie.

Enne Profilo | Junior Member

Il problema è che il metodo threadwrite della classe MyRemotableType tenta di scrivere in StreamWriter senza che viene fatto prima un controllo se il server è avviato o meno. Solleva un'eccezione in questo modo e hai risolto.


private void cmdinvia_Click(object sender, EventArgs e) { try { if (!t.Equals(null)) { Thread workerThread = new Thread((this.t.threadwrite)); workerThread.Start(txtbox.Text); } } catch { MessageBox.Show("Unable to connect to server"); } }

Rocco Verrastro
.NET Programmer - Web Developer

program Profilo | Junior Member

Grazie! Funziona! Mi potresti spiegare cosa indica quella proprietà equals?

Grazie ancora.

Enne Profilo | Junior Member

Equals è un metodo che effettua un'oprazione di confronto.
Nel nostro caso:

t.Equals(null) restituisce false, quindi con l'operatore '!' la condizione avviene solo se il confronto risultasse true.

Mi fa piacere che hai risolto il tuo problema :)
P.S: Ricordati di chiudere il thread accettando la risposta che lo ha risolto, grazie :)

Rocco Verrastro
.NET Programmer - Web Developer
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