[c#]Problema con eccezione WebException

domenica 29 giugno 2008 - 15.34

program Profilo | Junior Member

Ciao sto realizzando un programmino diviso in client e server.
Allora il client effettua un invio di dati al server .

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 non è avviato 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.
Ecco il codice:

try { MyRemotableType.record r = new MyRemotableType.record(blablabla); Thread workerThread = new Thread((this.remotetype.threadwrite)); workerThread.Start(r); } catch (System.Net.WebException err) { MessageBox.Show (err.Message); }

Come devo fare?Cosa sbaglio?

Vi Ringrazio.

Brainkiller Profilo | Guru

>Come devo fare?Cosa sbaglio?

Non è che forse il try..catch devi metterlo anche dentro il metodo threadwrite ? Visto che parte in un altro Thread ?
Ciao

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

program Profilo | Junior Member

No ho provato ma non va.
Intanto posto la funzione threadwrite e i dettagli dell'eccezione:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Cosa posso fare?
Esiste un altro metodo che posso usare per vedere prima se è in linea il server?
Grazie ancora.

Brainkiller Profilo | Guru

>No ho provato ma non va.
>Intanto posto la funzione threadwrite e i dettagli dell'eccezione:
>System.Net.WebException non è stata gestita
>Cosa posso fare?
>Esiste un altro metodo che posso usare per vedere prima se è
>in linea il server?

Scusa,
ma dov'è che si connette al server ? Io non vedo nessuna istruzione di connessione a server a meno chè è contenuta dentro build_xml()...

Poi prova a fare dei try..catch generici, cioè senza specificare il tipo di eccezione ma usando la Exception generica.

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

program Profilo | Junior Member

Non effettuo una vera e propria connessione ma invio dei dati registrando il client in questo modo.

RemotingConfiguration.RegisterWellKnownClientType(typeof(MyRemotableType.MyRemotableType), "http://localhost:1234/RemotingTest.soap");
remotetype = new MyRemotableType.MyRemotableType();

Dopodiche alla pressione di un pulsante su client lancio il thread sul server inviandogli come parametro i dati che devo inviare.
Questo thread è threadwrite che lancia a sua volta buildxml che semplicemente stampa un file xml.

Thread workerThread = new Thread((this.remotetype.threadwrite));

Quali sarebbero i catch generici?? Mi puoi fare un esempio?
Scusa ma non sono un esperto.

Grazie ancora.

program Profilo | Junior Member

Ho provato a rifare un esempio molto "stilizzato" ma che funziona in pratica come al programma.
Il client invia al server una stringa e il server la scrive su file.
Ancora una volta ho lo stesso problema alla chiamata del thread da parte del client.

Posto il link all'esempio nel caso poteste darmi un occhiata.Sono davvero poche righe niente di che.
http://rapidshare.com/files/126624065/esempio.zip.html

Altrimenti posto il codice direttamente.
Sperando in un vostro aiuto a capire questo problema.
Vi Ringrazio.

Brainkiller Profilo | Guru

>Altrimenti posto il codice direttamente.
>Sperando in un vostro aiuto a capire questo problema.

Ciao,
non riesco ad eseguirlo perchè vedo che ci sono vari Path da cambiare. Tra i tanti ho visto d:\Univ
E' per caso un progetto di Università ?

Come mai la scelta è ricaduta su Remoting ? Sai che è stato rimpiazzato tra l'altro con enorme successo da WCF ?

Ciao

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

program Profilo | Junior Member

Si, è per l'universita.L'uso del remoting mi è stato consigliato dal prof.

I path riguardano la directory dove si trova il file dati.txt che contiene le stringhe che arrivano dal client.

Ho modificato in modo che non devi cambiare nessun path.
Potresti gentilmente dargli un occhiata? Non riesco proprio a capire come posso fare per risolvere questo problema.

Ecco il link:
http://rapidshare.com/files/126849214/esempio.zip.html

Grazie ancora.

program Profilo | Junior Member

Nessuno puo aiutarmi?

program Profilo | Junior Member

up
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5