Hallo,
ich habe zur Zeit das Problem, dass ich folgende Fehlermeldung bekomme:> Fehlermeldung:
"Der Thread befindet sich bereits im Hintergrundverarbeitungsmodus".
Dies passiert, wenn ich in einem ASP.NET WebApi ActionFilterAttribute mein Modell validiere und im Fehlerfall der Eigenschaft HttpActionContext.Response einen Fehler-Response zuweise.
Ich muss allerdings dazu sagen, dass der Inhalt des Response-Objektes ein JSON-String ist, welcher mittels Json.NET serialisiert wird.
Hat jemand schon mal ein ähnliches Problem gehabt bzw. kann mir sagen was ich machen kann?
Gruß,
wax
Bitte benutze die richtigen Code-Tags! [Hinweis] Wie poste ich richtig?
Zeig mal Code. Du scheinst irgendeinen async oder Task Fehler zu haben.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Leider ist der Code zu tief verschachtelt, um alles hier zu zeigen.
Ich habe es gelöst, in dem ich die relevanten Teile aus mehreren Ebenen zusammengefasst habe und direkt in der "OnActionExecuting" - Methode ausführe:
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
{
if (!actionContext.ModelState.IsValid)
{
String errorMessage = CreateErrorMessageFromModelState(actionContext.ModelState);
IMyResponse resultContent = new MyResponse();
resultContent.Error = new MyError(errorMessage );
HttpResponseMessage response = actionContext.Request.CreateResponse<IMyResponse>(HttpStatusCode.BadRequest, resultContent, new CustomJsonMediaTypeFormatter());
actionContext.Response = response;
}
}
Der Code um das HttpResponseMessage-Objekt zu bekommen, war zuvor in min. 3-4 Methodenaufrufen verschachtelt. Da wurde aber nirgends ein Task erstellt und async war auch nicht zur Stelle.
Weiß ehrlich gesagt nicht woran es gelegen hat.
Gruß,
wax