Frage

Ich habe eine Suchaktion, die zwei Pfade hat, einen synchronen Pfad, der gerade eine einfache Ansicht zurückgibt, und einen asynchronen Pfad, der die Suche asynchron sucht und dann eine Ansicht zurückgibt. Beide erhalten Anfragen, sodass sie Teil derselben Aktion sind.

Das Problem ist, dass, wenn ich auf die Aktion "localhost: xxxx / home / search" zuzugreifen, die Seite nur unendlich lädt. Mit Fiddler kann ich sehen, dass die Anfrage niemals zurückkehrt. Ich habe es debuggedged, und es macht es in der letzten Codezeile, aber wieder ist die Anfrage nicht abgeschlossen.

Ich habe den Repro auf die folgenden vereinfacht: generasacodicetagpre.

vs11 warnt mich, dass der Code ohne Wartung synchron ausgeführt wird, was in Ordnung ist, aber die Anforderung ist nicht abgeschlossen.

sollte das funktionieren? Oder muss ich hier etwas anderes tun?

edit

Dies ist MVC 4 Targeting .NET 4.5.

edit 2

Für diejenigen, die die Dinge besser sehen, im Code, weshalb ich in einer asynchronen Aktion synchron muss: generasacodicetagpre.

War es hilfreich?

Lösung

Dies ist ein bekannter Fehler in der Beta. Stephen Toub:

Die kurze Antwort ist, dass in ASP.NET MVC im ASP.NET-MVC in der .NET 4.5-Beta ein bekannter Fehler vorliegt, der sich zu diesem Thema ergibt, wenn die Async-Methode synchron abgeschlossen ist.Bis ein Fix vorhanden ist, ist eine einfache Problemumgehung zum Hinzufügen "erwartet Task.yield ();"als erste Zeile der Async-Methode zwingt es, es asynchron zu kompletten.Damit Sie ordnungsgemäß funktionieren, müssen Sie auch sicherstellen, dass Sie den neuen SynchronizationContext von ASP.NET in .NET 4.5 verwenden, was sicherstellt, dass Sie die Zeile haben: generasacodicetagpre.

im Abschnitt AppsTettings in Ihrer Konfigurationsdatei.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top