Freigeben über


Connessione a un servizio WCF SSL con l'emulatore di Windows Phone 7

Articolo originale pubblicato domenica 19 giugno 2011

Ho dedicato un po' di tempo per tentare di capire perché l'applicazione Windows Phone 7 non riuscisse a connettersi all'endpoint WCF. Avevo già verificato accuratamente con un'applicazione client Windows Form standard che funzionasse tutto correttamente, ma ogni volta che tentavo di accedere allo stesso endpoint dall'emulatore di Windows Phone 7 veniva visualizzato un errore con l'indicazione che non era in attesa alcun endpoint e con un'eccezione interna 404 di risposta non ottenuta. Naturalmente tutto ciò era assolutamente falso, dal momento che l'endpoint era presente. Per risolvere questo problema ho appreso due cose:

  1. In realtà l'errore indicava che l'emulatore del telefono non disponeva dell'Autorità di certificazione (CA) radice per il certificato SSL nell'elenco di certificati attendibili. Purtroppo neanche in WP7 1.1 (ovvero Mango SDK) è disponibile un metodo semplice per effettuare questa operazione. L'unica soluzione consiste nel comprimere il file con estensione cer dell'Autorità di certificazione radice in un file zip e quindi copiarlo su un sito Web per poi scaricarlo. È ad esempio possibile copiarlo in un server di sviluppo locale, inviarlo a se stessi tramite posta elettronica, ad esempio con HotMail, e così via. Selezionare il file zip dall'emulatore, che lo scaricherà e quindi ne visualizzerà il contenuto. Se si fa clic sul file con estensione cer, verrà visualizzata l'opzione per l'installazione. Selezionare questa opzione e il file verrà inserito nell'elenco delle Autorità di certificazione attendibili in modo da poter procedere. A questo punto, può sembrare che finalmente tutto funzioni correttamente, ma in realtà... (vedere il punto successivo)
  2. Le operazioni descritte al passaggio 1 funzionano in modo eccellente...finché non si arresta e si riavvia l'emulatore. Sembra infatti che non abbia uno stato persistente e pertanto ogni volta che viene arrestato o le numerose volte che si arresta automaticamente e/o si disconnette da Visual Studio, è necessario ripetere il passaggio 1 dall'inizio. E questo tutte le volte. Questa situazione è piuttosto seccante. Non sono certo che per il momento sia prevista la soluzione per questo problema, ma immagino che prima o poi verrà affrontato.

Questo è un post di blog localizzato. L'articolo originale è disponibile in Connecting to an SSL WCF Service with Windows Phone 7 Emulator.