Wpis z mikrobloga

Mam problem.
W aplikacji tworzę sobie osobny async Task w którym łączę się z WebSocketem i co jakiś czas gdy dostanę nową wiadomość chcę pobrać tą wiadomość, zdeserializować na obiekt(dostaję Json) i do tej pory wszystko śmiga. Teraz zostaje zapisanie tego obiektu do bazy danych w ramach synchronizacji.

I tu jestem problem, wywołuję sobie nhibernate żeby otworzyć transakcję i w tym momencie przekierowuje mnie do NhibernateSession gdzie wyskakuje wyjątek że odwołanie nie zostało ustawione na wystąpienie obiektu w linijce:
var configurationPath = HttpContext.Current.Server.MapPath(@"~\Models\hibernate.cfg.xml");

Sprawdzam i rzeczywiście, Current == null.

Dlaczego tak się dzieje? Podczas używania apki z gui wszystko śmiga i jest połączenie z bazą przez nhibernate, natomiast w osobnym async Tasku przy próbie wywołania funkcji z commitem po nhibernate wyrzuca mi wyjątek dla HttpContext

#programowanie #csharp #dotnet
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@JBFC: HttpContext.Current jest dostępne tylko w aktualnym threadzie i nie jest przekzwyane do innych threadów?

Spróbuj coś w stylu:

var task = Task.Factory.StartNew(
  • Odpowiedz