2011-09-29 15 views
5

Zajmuję się rolą sieci w błękitach. Działa dobrze lokalnie w aplikacji programistycznej aplikacji, ale po wdrożeniu na platformie Azure nie działa po cichu (po prostu nie ma odpowiedzi na żadne żądanie).Jak wykrywać błędy podczas uruchamiania roli przeglądarki Azure?

Zakładam, że to jakiś problem z web.config, ale dzieje się to tak wcześnie, że zdarza się to jeszcze przed skonfigurowaniem diagnostyki w globalnym asaxie. Jak już wspomniano, działa dobrze lokalnie, ale po prostu nie ma żadnej odpowiedzi z systemu lazuru.

Jak mogę się dowiedzieć, co konkretnie jest nie tak, aby móc go rozwiązać, np. Uzyskać tekst wyjątku, ślad stosu, dziennik błędów systemu aplikacji IIS lub coś, co mogłoby wskazać mi prawdziwy problem?

Odpowiedz

4

Absolutną rzeczą, która jest uruchamiana w roli WWW, nie jest Twoja aplikacja, ale metoda OnStart() w WebRole.cs w projekcie Azure. To jest miejsce, w którym można dodać kod do monitorowania witryny sieci Web.

Standardową techniką jest kopiowanie dzienników śledzenia aplikacji i dzienników zdarzeń systemu Windows do magazynu tabel Azure razem (w razie potrzeby) z oprzyrządowaniem do użycia procesora, statystyką IIS i tym, co jest.

Dobrym wstępem do tego jest tutaj: http://blog.bareweb.eu/2011/01/beginning-azure-diagnostics/

i dobre nawiązanie ze szczegółami na temat specyfiki będziesz potrzebować w aplikacji jest tutaj: http://blog.bareweb.eu/2011/03/implementing-azure-diagnostics-with-sdk-v1-4/

który nadal ma zastosowanie do Azure SDK 1.5.

Po przechwyceniu diagnostyki można użyć programu Visual Studio, aby wyświetlić je bezpośrednio, lub można użyć narzędzia takiego jak Cerebrata Azure Diagnostics Manager do wykreślenia i przefiltrowania ich automatycznie. To narzędzie jest trochę szorstkie na krawędziach (szczególnie w przypadku większych systemów z wieloma instancjami: wykresy nie są zbyt przydatne), ale jest tak dobre, jak to tylko możliwe.


Alternatywnym podejściem jest użycie pulpitu zdalnego łączenia się ze zdalnym instancji i zrobić kilka spelunking w dziennikach zdarzeń systemu Windows i tym podobnych. Możesz również użyć przeglądarki Internet Explorer znajdującej się na zdalnej instancji, aby bezpośrednio połączyć się lokalnie z aplikacją i zobaczyć błędy itp., Które w przeciwnym razie mogłyby zostać ukryte.

Osobiście zrobiłbym to tylko wtedy, gdy mechanizm pamięci diagnostycznej nie działa: serwery produkcyjne powinny mieć wyłączony dostęp do pulpitu zdalnego, aby zredukować możliwą powierzchnię zewnętrznego ataku.

+0

Dzięki zdalnemu pulpitowi mogłem wyśledzić błąd. Problem polegał na tym, że przy uruchomieniu aplikacji odniesienie do zespołu było błędne (niewłaściwa wersja zestawu). Ponieważ stało się to zanim jakikolwiek inny kod mógł zostać wykonany, było to trochę kłopotliwe, ale znalazłem je z logów sys. –

+0

Dobry połów, niezły - w pewnym momencie miałem podobny problem z nieuczciwym 32-bitowym zestawem skradanym pod radarem. –

Powiązane problemy