2012-06-10 15 views
6

Mam dziwny problem z aplikacją MVC 3 działającą jako witryna Azure. Miałem problemy z Azure w przeszłości, ale nowa koncepcja WWW działa prawie idealnie, z wyjątkiem tego:"Nie znaleziono punktu końcowego OpenID" w witrynie Azure

DotNetOpenAuth.Messaging.ProtocolException: No OpenID endpoint found. 

Dzieje się tak tylko z Google, tylko na Azure. Działa lokalnie działa dobrze, działa na AppHarbor, działa dobrze, ale na Azure każda próba użycia Google do logowania OpenID spowoduje błąd serwera z powodu tego wyjątku (śledzone za pomocą Airbrake).

Sprawdź samodzielnie, spróbuj zalogować się do Google pod numerem my website, a jeśli od razu dostaniesz stronę z błędem serwera, oznacza to, że DNOA się podniosło. Wszystkie inne metody logowania działają dobrze, w tym Yahoo i AOL, które również są OpenID.

PS: Nie próbuj go zbyt wiele razy, choć airbrake chętnie spam Mój adres email: <

+0

Czy możesz spróbować dodać protokół OAuth do swojej aplikacji, tak jak to opisano tutaj, aby uzyskać więcej informacji o tym, dlaczego wystąpił błąd w systemie Windows Azure http://www.dotnetopenauth.net/developers/help/loggingdebugging-dotnetopenauth-with-log4net/ – AvkashChauhan

+0

@AvkashChauhan Próbowałem użyć Glimpse, ale zakładka DNOA jest nieaktywna, co sugeruje, że nic nie jest rejestrowane. – CMircea

+0

wypróbuj opcję nr 2 pod tym linkiem –

Odpowiedz

3

Spróbuj dodać ten kod do swojej strony internetowej przed wywołującego OpenIdRelyingParty.CreateRequest:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; 

W niektórych konfiguracjach Azure zostało to pokazane w celu rozwiązania problemu. Daj nam znać, jeśli to rozwiąże również Twój problem.

+0

Dziękujemy! To działało idealnie dla mnie. Czy masz bardziej szczegółowe wyjaśnienie, dlaczego jest to konieczne? –

+2

Wygląda na to, że osoby z nowej usługi hostingu podglądu Azure działają w nowych środowiskach/piaskownicy, w których domyślne ustawienia SSL są niestandardowe. Wysyłając żądanie HTTP do Google, SSL v3 jest (najwyraźniej) używany i domyślna konfiguracja, cokolwiek to jest, nie może się do niej dostosować bez niewielkiej pomocy. Pracownicy platformy Azure pracują nad tym problemem, dlatego domyślnie działa on w przyszłości. –

+0

Ta odpowiedź rozwiązała problem z dostępem do interfejsów Google API. Jednak nadal mam ten sam problem z dostępem do Exchange Web Services, nawet po zaimplementowaniu tego obejścia. – tig

-1

miałem tę funkcję w global.asax:

AreaRegistration.RegisterAllAreas(); 

Po usunięciu tej linii, wszystko działa idealnie.

Dodałem kilka obszarów w mojej aplikacji, funkcja ta została automatycznie dodana przez VS2012.