Felsöka degraderat tillstånd på Azure Traffic Manager

Den här artikeln beskriver hur du felsöker en Azure Traffic Manager-profil som visar en degraderad status. Som ett första steg i felsökningen av ett degraderat Azure Traffic Manager-tillstånd är att aktivera loggning. Mer information finns i Aktivera resursloggar. I det här scenariot bör du överväga att konfigurera en Traffic Manager-profil som pekar på några av dina cloudapp.net värdbaserade tjänster. Om hälsotillståndet för Traffic Manager visar statusen Degraderad kan statusen för en eller flera slutpunkter försämras:

degraderad slutpunktsstatus

Om hälsotillståndet för Traffic Manager visar en inaktiv status kan båda slutpunkterna vara Inaktiverade:

Status för Inaktiv Traffic Manager

Förstå Traffic Manager-avsökningar

  • Traffic Manager anser att en slutpunkt endast är ONLINE när avsökningen tar emot ett HTTP 200-svar tillbaka från avsökningssökvägen. Om ditt program returnerar någon annan HTTP-svarskod bör du lägga till svarskoden i Förväntade statuskodintervall för Traffic Manager-profilen.
  • Ett 30x-omdirigeringssvar behandlas som ett fel om du inte anger detta som en giltig svarskod i Förväntade statuskodintervall för din Traffic Manager-profil. Traffic Manager avsöker inte omdirigeringsmålet.
  • För HTTPs-avsökningar ignoreras certifikatfel.
  • Det faktiska innehållet i avsökningssökvägen spelar ingen roll så länge en 200 returneras. Att avsökning av en URL till statiskt innehåll som "/favicon.ico" är en vanlig teknik. Dynamiskt innehåll, som ASP-sidorna, kanske inte alltid returnerar 200, även när programmet är felfritt.
  • Bästa praxis är att ange sökvägen för avsökningen till något som har tillräckligt med logik för att fastställa att platsen är upp eller ned. I föregående exempel testar du bara att w3wp.exe svarar genom att ange sökvägen till "/favicon.ico". Den här avsökningen kanske inte indikerar att webbprogrammet är felfritt. Ett bättre alternativ är att ange en sökväg till något som "/Probe.aspx" som har logik för att fastställa webbplatsens hälsa. Du kan till exempel använda prestandaräknare för processoranvändning eller mäta antalet misslyckade begäranden. Eller så kan du försöka komma åt databasresurser eller sessionstillstånd för att se till att webbprogrammet fungerar.
  • Om alla slutpunkter i en profil degraderas behandlar Traffic Manager alla slutpunkter som felfria och dirigerar trafik till alla slutpunkter. Det här beteendet säkerställer att problem med avsökningsmekanismen inte resulterar i ett fullständigt avbrott i tjänsten.

Felsökning

Om du vill felsöka ett avsökningsfel behöver du ett verktyg som visar http-statuskoden som returneras från avsöknings-URL:en. Det finns många tillgängliga verktyg som visar http-råsvaret.

Du kan också använda fliken Nätverk i F12-felsökningsverktygen i Internet Explorer för att visa HTTP-svaren.

I det här exemplet vill vi se svaret från vår avsöknings-URL: http://watestsdp2008r2.cloudapp.net:80/Probe. Följande PowerShell-exempel illustrerar problemet.

Invoke-WebRequest 'http://watestsdp2008r2.cloudapp.net/Probe' -MaximumRedirection 0 -ErrorAction SilentlyContinue | Select-Object StatusCode,StatusDescription

Exempel på utdata>

StatusCode StatusDescription
---------- -----------------
        301 Moved Permanently

Observera att vi fick ett omdirigeringssvar. Som tidigare nämnts anses alla Andra StatusCode än 200 vara ett fel. Traffic Manager ändrar slutpunktsstatusen till Offline. Lös problemet genom att kontrollera webbplatskonfigurationen för att säkerställa att rätt StatusCode kan returneras från sökvägen för avsökningen. Konfigurera om Traffic Manager-avsökningen så att den pekar på en sökväg som returnerar 200.

Om avsökningen använder HTTPS-protokollet kan du behöva inaktivera certifikatkontroll för att undvika SSL/TLS-fel under testet. Följande PowerShell-instruktioner inaktiverar certifikatverifiering för den aktuella PowerShell-sessionen:

add-type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
    public bool CheckValidationResult(
    ServicePoint srvPoint, X509Certificate certificate,
    WebRequest request, int certificateProblem) {
    return true;
    }
}
"@
[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy

Nästa steg

Om Traffic Manager-trafikroutningsmetoder

Vad är Traffic Manager?

Cloud Services

Azure App Service

Åtgärder för Traffic Manager (REST API-referens)

Azure Traffic Manager-cmdletar