2012-06-10 7 views
6

Ho uno strano problema con un'app MVC 3 in esecuzione come sito Web di Azure. Ho avuto problemi con Azure in passato, ma il nuovo concetto di sito funziona quasi perfettamente, tranne questo:"Nessun endpoint OpenID trovato" nel sito Web di Azure

DotNetOpenAuth.Messaging.ProtocolException: No OpenID endpoint found. 

Questo accade solo con Google, solo su Azure. Funzionando localmente funziona bene, in esecuzione su AppHarbor funziona bene, ma su Azure ogni tentativo di utilizzare Google per l'accesso OpenID si tradurrà in un errore del server a causa di tale eccezione (tracciato utilizzando Airbrake).

Guarda tu stesso, prova ad accedere con Google allo my website e se ricevi immediatamente una pagina di errore del server significa che DNOA sta aprendo. Tutti gli altri metodi di accesso funzionano bene, compresi Yahoo e AOL, che sono anche OpenID.

PS: Non cercare troppe volte però, airbrake sarà lieto di spam il mio indirizzo email: <

+0

Per favore, prova ad aggiungere la registrazione OAuth alla tua applicazione come descritto qui per ottenere maggiori informazioni perché non funziona su Windows Azure http://www.dotnetopenauth.net/developers/help/loggingdebugging-dotnetopenauth-with-log4net/ – AvkashChauhan

+0

@AvkashChauhan Ho provato a utilizzare Glimpse ma la scheda DNOA è inattiva, il che suggerisce che non viene registrato nulla. – CMircea

+0

prova l'opzione # 2 a quel link –

risposta

3

Prova ad aggiungere il codice al tuo sito web prima chiamare OpenIdRelyingParty.CreateRequest:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; 

In alcune configurazioni di Azure è stato dimostrato che questo risolve il problema. Fateci sapere se questo risolve anche il vostro problema.

+0

Grazie! Ha funzionato perfettamente per me. Avete una spiegazione più approfondita sul perché è necessario? –

+2

Sembra che quelli sul nuovo servizio di hosting Web di anteprima di Azure stiano eseguendo i propri siti in un nuovo ambiente/sandbox, in cui le impostazioni SSL predefinite non sono standard. Quando si invia una richiesta HTTP a Google, SSL v3 è (apparentemente) utilizzato e la configurazione predefinita, qualunque essa sia, non può adattarsi ad essa senza un piccolo aiuto. Le persone di Azure stanno lavorando al problema in modo che funzioni di default in futuro. –

+0

Questa risposta ha risolto il problema dell'accesso alle API di Google. Tuttavia, sto ancora avendo lo stesso problema con l'accesso a Exchange Web Services anche con questa soluzione alternativa implementata. – tig

-1

ho avuto questa funzione in global.asax:

AreaRegistration.RegisterAllAreas(); 

Dopo aver rimosso questa linea, tutto funziona perfettamente.

Ho aggiunto alcune aree nella mia app, questa funzione è stata aggiunta automaticamente da VS2012.