Výjimky služby Azure Relay

Tento článek uvádí některé výjimky, které mohou být generovány rozhraními API služby Azure Relay. Tento odkaz se může změnit, proto se vraťte k aktualizacím.

Kategorie výjimek

Rozhraní API služby Relay generují výjimky, které mohou spadat do následujících kategorií. Uvedené jsou také navrhované akce, které můžete provést, abyste mohli tyto výjimky vyřešit.

Typy výjimek

Následující tabulka uvádí typy výjimek zasílání zpráv a jejich příčiny. Obsahuje také poznámky k navrhovaným akcím, které můžete provést při řešení výjimek.

Typ výjimky Popis Navrhovaná akce Poznámka k automatickému nebo okamžitému opakování
Časový limit Server neodpověděl na požadovanou operaci v zadaném čase, který je řízen operací OperationTimeout. Server mohl dokončit požadovanou operaci. Může k tomu dojít kvůli zpoždění sítě nebo jiné infrastruktury. Zkontrolujte konzistenci systému a v případě potřeby to zkuste znovu. Viz TimeoutException. Opakování může v některých případech pomoct; přidání logiky opakování do kódu
Neplatná operace Požadovaná operace uživatele není v rámci serveru nebo služby povolená. Podrobnosti najdete ve zprávě o výjimce. Zkontrolujte kód a dokumentaci. Ujistěte se, že požadovaná operace je platná. Opakování nepomůže.
Operace byla zrušena. Došlo k pokusu o vyvolání operace u objektu, který již byl uzavřen, přerušen nebo uvolněn. Ve výjimečných případech je okolí transakce již uvolněna. Zkontrolujte kód a ujistěte se, že nevolá operace s odstraněným objektem. Opakování nepomůže.
Neoprávněný přístup Objekt TokenProvider nemohl získat token, token je neplatný nebo token neobsahuje deklarace identity potřebné k provedení operace. Ujistěte se, že je zprostředkovatel tokenu vytvořen se správnými hodnotami. Zkontrolujte konfiguraci služby Řízení přístupu. Opakování může v některých případech pomoct; přidání logiky opakování do kódu
Výjimka argumentu,
Argument Null,
Argument mimo rozsah
Došlo k jedné nebo několika z následujících akcí:
Jeden nebo více argumentů zadaných metodě je neplatný.
Identifikátor URI zadaný pro NamespaceManager nebo Create obsahuje jeden nebo více segmentů cesty.
Schéma identifikátoru URI zadané pro NamespaceManager nebo Create je neplatné.
Hodnota vlastnosti je větší než 32 kB.
Zkontrolujte volající kód a ujistěte se, že jsou argumenty správné. Opakování nepomůže.
Zaneprázdněný server Služba v tuto chvíli nemůže požadavek zpracovat. Klient může nějakou dobu počkat a pak operaci zopakovat. Klient se může po určitém intervalu opakovat. Pokud opakování způsobí jinou výjimku, zkontrolujte chování opakování této výjimky.
Překročení kvóty Entita zasílání zpráv dosáhla maximální povolené velikosti. Vytvořte v entitě prostor příjmem zpráv z entity nebo jejích dílčích front. Viz QuotaExceededException. Opakování může pomoct, pokud se mezitím odebraly zprávy.
Byla překročena velikost zprávy. Datová část zprávy překračuje limit 256 kB. Všimněte si, že limit 256 kB je celková velikost zprávy. Celková velikost zprávy může zahrnovat systémové vlastnosti a veškeré režijní náklady microsoft .NET. Zmenšete velikost datové části zprávy a zkuste operaci zopakovat. Opakování nepomůže.

Quotaexceededexception

QuotaExceededException indikuje, že došlo k překročení kvóty pro některou z entit.

U služby Relay tato výjimka zabalí Výjimku System.ServiceModel.QuotaExceededException, což značí, že byl pro tento koncový bod překročen maximální počet naslouchacích procesů. Označuje se v hodnotě MaximumListenersPerEndpoint zprávy výjimky.

TimeoutException

Výjimka TimeoutException zpravidla indikuje, že operace iniciovaná uživatelem trvá déle, než je příslušný časový limit.

Zkontrolujte hodnotu ServicePointManager.Default Připojení ionLimit vlastnost. Dosažení tohoto limitu může také způsobit vypršení časového limituException.

Při prvním otevření připojení odesílatele přenosu může u služby Relay dojít k výjimkám časového limitu. Existují dvě běžné příčiny této výjimky:

  • Hodnota OpenTimeout může být příliš malá (i o zlomek sekundy).
  • Místní naslouchací proces přenosu může přestat reagovat (nebo může narazit na problémy s pravidly brány firewall, které zakazují naslouchacím procesům přijímat nová připojení klientů) a hodnota OpenTimeout je menší než 20 sekund.

Příklad:

'System.TimeoutException’: The operation did not complete within the allotted timeout of 00:00:10.
The time allotted to this operation may have been a portion of a longer timeout.

Běžné příčiny

Tato chyba má dvě obvyklé příčiny:

  • Nesprávná konfigurace

    Časový limit operace může být pro provozní podmínku příliš malý. Výchozí hodnota časového limitu operace v klientské sadě SDK je 60 sekund. Zkontrolujte, jestli je hodnota v kódu nastavená na něco příliš malého. Všimněte si, že využití procesoru a stav sítě můžou ovlivnit dobu potřebnou k dokončení operace. Je vhodné nenastavovat časový limit operace na velmi malou hodnotu.

  • Chyba přechodné služby

    Služba Relay může občas zaznamenat zpoždění při zpracování požadavků. Může k tomu dojít například během období vysokého provozu. Pokud k ní dojde, zkuste operaci zopakovat po zpoždění, dokud nebude operace úspěšná. Pokud stejná operace po několika pokusech selže, zkontrolujte web stavu služby Azure a zjistěte, jestli nedošlo k výpadkům služby.

Připojení ionLostException – NameRenewalFailed

Příznaky

Váš klient obdrží výjimku: Microsoft.Azure.Relay.ConnectionLostException : InternalServerError: NameRenewalFailed.

Příčina

Služba Azure Relay restartuje připojení naslouchacího procesu každých 24 hodin. Toto chování je záměrné. Služba Azure Relay odpojí aktivní připojení naslouchacího procesu každých 24 hodin a naslouchací proces se znovu připojí k serveru pomocí mechanismu opakování.

Rozlišení

Žádná akce na vaší straně jako naslouchací proces se automaticky znovu připojí k serveru. Pokud si všimnete, že se váš naslouchací proces znovu nepřipojí, odešlete lístek týmu podpory.

Další kroky