Řešení potíží s připojením a doručováním zpráv
Tyto pokyny představují několik způsobů, jak pomoct s vlastní diagnostikou, abyste našli původní příčinu přímo nebo zúžili problém. Výsledek samoobslužné diagnostiky je také užitečný při hlášení pro další šetření.
Nejprve je potřeba zkontrolovat na webu Azure Portal, pro který serviceMode je služba Azure SignalR (označovaná také jako ASRS) nakonfigurovaná.
Informace o
Default
režimu najdete v tématu Řešení potíží s výchozím režimem.Informace o
Serverless
řešení potíží s režimem bez serveru najdete v případě potíží s režimem bez serveru.Informace o
Classic
režimu najdete v tématu Řešení potíží s klasickým režimem.
Za druhé je potřeba zachytit trasování služeb, abyste mohli řešit potíže. Informace o zachycení trasování najdete v tématu Postup zachycení trasování služby.
Máte problémy nebo zpětnou vazbu k řešení potíží? Dejte nám vědět.
Jak zachytit trasování služeb
Kvůli zjednodušení procesu řešení potíží poskytuje služba Azure SignalR nástroj pro živé trasování, který zveřejňuje trasování služeb v kategoriích připojení a zasílání zpráv . Trasování zahrnuje události připojené k připojení nebo odpojené události a přijaté nebo levé události zpráv, které nejsou omezené. Pomocí nástroje živého trasování můžete zachytávat, zobrazovat, řadit, filtrovat a exportovat živé trasování. Další informace naleznete v tématu Použití nástroje živého trasování.
Máte problémy nebo zpětnou vazbu k řešení potíží? Dejte nám vědět.
Řešení potíží s výchozím režimem
Pokud je služba ASRS ve výchozím režimu, existují tři role: klient, server a služba:
Klient: Klient je zkratka pro klienty připojené k ASRS. V těchto doprovodných materiálech se trvalá připojení připojující klient a ASRS označují jako připojení klientů.
Server: Server je zkratka pro server, který obsluhuje vyjednávání klientů a hostuje logiku SignalR
Hub
. Trvalá připojení mezi serverem a ASRS se v těchto doprovodných materiálech nazývají Připojení k serveru.Služba: Služba je krátký název služby ASRS v těchto doprovodných materiálech.
Problém můžete zúžit několika způsoby.
Pokud k problému dochází správně nebo je možné ho opakovat, je přímý způsob zobrazení probíhajícího provozu.
Pokud je problém těžké opakovat, můžou vám pomoct trasování a protokoly.
Jak zobrazit provoz a zúžit problém
Zachycení probíhajícího provozu je nejpřímější způsob, jak tento problém zúžit. Trasování sítě můžete zachytit pomocí níže popsaných možností:
Žádosti klientů
V případě trvalého připojení SignalR se nejprve /negotiate
přesměruje na hostovaný aplikační server a pak se přesměruje do služby Azure SignalR a pak naváže skutečné trvalé připojení ke službě Azure SignalR. Podrobný postup najdete v interních informacích služby Azure SignalR.
S ručním trasováním sítě na straně klienta zkontrolujte, který požadavek selže s tím, jaký stavový kód a jakou odpověď, a vyhledejte řešení v průvodci odstraňováním potíží.
Požadavky serveru
SignalR Server udržuje připojení serveru mezi serverem a službou. Po spuštění aplikačního serveru se spustí připojení WebSocket ke službě Azure SignalR. Všechny klientské přenosy se směrují přes službu Azure SignalR do těchto připojeník serveru a pak se odešlou do Hub
služby . Když připojení k serveru klesne, budou ovlivněni klienti směrovanými na toto připojení k serveru. Naše sada Azure SignalR SDK má logiku "Vždy opakovat" pro opětovné připojení připojení k serveru s maximálně 1minutovým zpožděním, aby se minimalizovaly efekty.
Připojení kserveru může dojít k poklesu kvůli nestabilitě sítě nebo pravidelné údržbě služby Azure SignalR nebo aktualizací nebo údržbě hostovaného aplikačního serveru. Pokud má klientská strana mechanismus odpojení/opětovného připojení, je účinek minimální, stejně jako jakékoli straně klienta způsobilo odpojení a opětovné připojení.
Zobrazte trasování sítě na straně serveru a vyhledejte stavový kód a podrobnosti o chybě, proč služba zahodí nebo odmítne připojení k serveru. Vyhledejte původní příčinu v průvodci odstraňováním potíží.
Máte problémy nebo zpětnou vazbu k řešení potíží? Dejte nám vědět.
Přidávání protokolů
Protokoly můžou být užitečné k diagnostice problémů a monitorování stavu spuštění.
Povolení protokolu na straně klienta
Prostředí protokolování na straně klienta je naprosto stejné jako při použití místního signalR.
Povolení protokolování na straně klienta pro ASP.NET Core SignalR
Povolení protokolování na straně klienta pro ASP.NET SignalR
Povolení protokolu na straně serveru
Povolení protokolování na straně serveru pro ASP.NET Core SignalR
Protokolování na straně serveru pro ASP.NET Core SignalR
integraci s protokolováním založeným ILogger
na ASP.NET Core
rozhraní. Protokolování na straně serveru můžete povolit pomocí ConfigureLogging
ukázkového použití následujícím způsobem:
.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConsole();
logging.AddDebug();
})
Kategorie protokolovacího modulu pro Azure SignalR vždy začínají .Microsoft.Azure.SignalR
Pokud chcete povolit podrobné protokoly z Azure SignalR, nakonfigurujte předchozí předpony na Information
úroveň v souboru appsettings.json následujícím způsobem:
{
"Logging": {
"LogLevel": {
...
"Microsoft.Azure.SignalR": "Information",
...
}
}
}
Zkontrolujte, jestli se nezaznamenávají nějaké neobvyklé upozornění nebo protokoly chyb.
Povolení trasování na straně serveru pro ASP.NET SignalR
Při použití verze >sady SDK = 1.0.0
můžete povolit trasování přidáním následujícího příkazu: web.config
(Podrobnosti)
<system.diagnostics>
<sources>
<source name="Microsoft.Azure.SignalR" switchName="SignalRSwitch">
<listeners>
<add name="ASRS" />
</listeners>
</source>
</sources>
<!-- Sets the trace verbosity level -->
<switches>
<add name="SignalRSwitch" value="Information" />
</switches>
<!-- Specifies the trace writer for output -->
<sharedListeners>
<add name="ASRS" type="System.Diagnostics.TextWriterTraceListener" initializeData="asrs.log.txt" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
Zkontrolujte, jestli se nezaznamenávají nějaké neobvyklé upozornění nebo protokoly chyb.
Povolení protokolů ve službě Azure SignalR
Můžete také povolit diagnostické protokoly pro službu Azure SignalR. Tyto protokoly poskytují podrobné informace o každém připojení připojeném ke službě Azure SignalR.
Máte problémy nebo zpětnou vazbu k řešení potíží? Dejte nám vědět.
Řešení potíží s bezserverový režim
Pokud je služba ASRS v bezserverovém režimu, podporuje Serverless
režim pouze ASP.NET Core SignalR a ASP.NET SignalR tento režim nepodporuje.
Při diagnostice problémů s připojením v Serverless
režimu je nejpřímější způsob zobrazení provozu na straně klienta. Můžete také povolit protokoly na straně klienta a protokoly na straně služby.
Máte problémy nebo zpětnou vazbu k řešení potíží? Dejte nám vědět.
Řešení potíží s klasickým režimem
Classic
režim je zastaralý a nedoporučuje se používat. Pokud je služba Azure SignalR v klasickém režimu, pomocí připojených připojení k serveru určí, jestli je aktuální služba v default
režimu nebo serverless
režimu. Klasický režim může vést k problémům s připojením mezi klienty, protože když dojde k náhlému poklesu veškerého připojení k připojenému serveru, například kvůli nestabilitě sítě, Azure SignalR se domnívá, že se teď přepne do serverless
režimu a klienti připojení během tohoto období se nikdy nebudou směrovat na hostovaný aplikační server. Povolte protokoly na straně služby a zkontrolujte, jestli jsou zaznamenáni někteří klienti, jako ServerlessModeEntered
kdybyste ale hostovali aplikační server, někteří klienti se nikdy nedostanou na stranu aplikačního serveru. Pokud se zobrazí některý z těchto klientů, přerušte připojení klienta a pak nechte klienty restartovat.
classic
Řešení potíží s připojením k režimu a doručováním zpráv se podobá řešení potíží s výchozím režimem.
Máte problémy nebo zpětnou vazbu k řešení potíží? Dejte nám vědět.
Stav služeb
Můžete zkontrolovat rozhraní API stavu pro stav služby.
Požadavek: GET
https://{instance_name}.service.signalr.net/api/v1/health
Stavový kód odpovědi:
- 200: zdravé.
- 503: Vaše služba není v pořádku. Můžeš:
- Počkejte několik minut na automatické obnovení.
- Zkontrolujte, jestli je IP adresa stejná jako IP adresa z portálu.
- Nebo restartujte instanci.
- Pokud všechny výše uvedené možnosti nefungují, kontaktujte nás přidáním nové žádosti o podporu na webu Azure Portal.
Další informace o zotavení po havárii
Máte problémy nebo zpětnou vazbu k řešení potíží? Dejte nám vědět.
Další kroky
V této příručce jste se dozvěděli, jak řešit potíže s připojením a doručováním zpráv. Můžete se také naučit, jak řešit běžné problémy.