Warum gibt es eine Stackoverflow -Ausnahme mit configureAwait (false) in ASP.NET -App, jedoch nicht mit ConfigureAwait (C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Warum gibt es eine Stackoverflow -Ausnahme mit configureAwait (false) in ASP.NET -App, jedoch nicht mit ConfigureAwait (

Post by Anonymous »

Ich habe ein ASP.NET mit .NetFramework 4.8 App. Ich bekomme eine Stackoverflow -Ausnahme. Ich habe eine Aktionsmethode, die eine andere Methode aufruft CallbackMethod , wobei die Verwendung von configureAwait (false) in einer Anweisung Stack Overflow -Ausnahme auslöst. Die Stackoverflow -Ausnahme erfolgt jedoch irgendwo nach Abschluss der Aufgabe, die dieses Verhalten beeinflusst. < /P>

Code: Select all

public static async Task CallBackMethod(HttpRequestMessage request, string entityId, Func getEntity, Func action, string actionId) where T : Meta
{
// Changing to ConfigureAwait(true) ensures no Stackoverflow exception
request.Properties[Before] = await getEntity.Invoke(entityId).ConfigureAwait(false);
request.Properties[Target] = typeof(T).Name;
// Custom Exception is thrown from action.Invoke()
await action.Invoke().ConfigureAwait(false);
request.Properties[After] = (Func)(async () => await getEntity.Invoke(entityId).ConfigureAwait(false));
request.Properties[ActionId] = actionId;
}
Für ein bestimmtes Szenario wird eine verschachtelte Methode tief in diese Aktion verwendet. Aber wenn dies der Fall ist, löst meine App die Ausnahme von Stackoverflow aus und beendet.request.Properties[Before] = await getEntity.Invoke(entityId).ConfigureAwait(true)
< /code>
Dann wird die Stackoverflow -Ausnahme nicht ausgelöst. Nur die erwartete benutzerdefinierte Ausnahme wird ausgelöst und behandelt.
Ich dachte Nicht in der Lage herauszufinden, was die Stackoverflow -Ausnahme verursachen könnte. Ich wollte verstehen, was sich zwischen configureAwait (false) und true, dass die Ausnahme von Stackoverflow nicht geworfen wird. P>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post