Ciao Luciano,
grazie per i test che hai fatto, sono molto precisi.
In particolare vorrei commentare questo.
Ora ho provato ad incollare un singolo paragrafo e funziona anche in remoto, se ripeto il copia/incolla due volte dello stesso paragrafo ritorna l'eccezione, cosa che non avviene in locale.
Il fatto che almeno una volta il test abbia funzionato anche in remoto mi fa escludere la Textbox dalle possibili cause. Invece, sono più propenso a credere che il server abbia qualche problema di connettività o che gli amministratori abbiano volutamente posto dei filtri sulle richieste http in uscita. Del resto, l'errore che stai ottenendo è:
An exception occurred during a WebClient request
Dovremmo cercare di capire più approfonditamente di quale eccezione si sta trattando.
Crea una nuova pagina aspx in cui metti la richiesta alla API nel Page_Load. Non è necessario creare alcun controllo nel form, tanto si tratta semplicemente di una pagina di test che inverà la stessa richiesta ad ogni aggiornamento. Il paragrafo che prima incollavi nella casella, ora assegnalo ad una variabile vb.net/C# nel codice lato server, e poi passalo al WebClient.
Metti tutto in un try...catch in questo modo, all'interno del Page_Load:
try {
var paragrafo = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.";
//qui crea il WebClient e fagli fare la richiesta alla API passandogli il paragrafo
//Se tutto dovesse andar bene, stampiamo un messaggio di OK
Response.Write("Richiesta OK");
} catch (WebException ex) {
//Altrimenti stampiamo le informazioni sull'eccezione
if (ex.Status == WebExceptionStatus.ProtocolError) {
Response.Write("<br>Status Code : {0}", ((HttpWebResponse)ex.Response).StatusCode);
Response.Write("<br>Status Description : {0}", ((HttpWebResponse)ex.Response).StatusDescription);
}
Response.Write("<br>Ecco tutto il testo dell'eccezione:<br>{0}<br>", ex);
if (ex.InnerException != null){
Response.Write("<br>Ecco tutto il testo dell'eccezione interna:<br>{0}<br>", ex.InnerException);
}
} catch (Exception ex) {
Response.Write("<br>Non si trattava di una WebException, ecco il testo:<br>{0}<br>", ex);
}
Ogni volta che aggiorni la pagina, verrà inviata una richiesta alla API.
Vedi se così saltano fuori maggiori dettagli sulla causa del problema e se l'errore si verifica in maniera consistente ad ogni aggiornamento o se invece qualche volta la richiesta riesce.
ciao,
Moreno
Modificato da BrightSoul il 11 marzo 2015 08.26 -