|
Kilka dni temu przeniosłem stary projekt asp.net na Linuksa, który opiera się na asp.net 4.0 + Nhibernate + FluentNhibernate, i napotkałem rzadki problem podczas migracji, przejrzałem wiele artykułów, w tym chiński, angielski, i w końcu znalazłem odpowiedź na japońskiej stronie (przez Google Translate), którą można opisać jako dość bolesną, i ją zanotowałem Po pierwsze, środowisko do migracji to centos6.5 + MONO + Jexus To zdarzyło się w Nhibernate + mono, ale nie zawsze się to działo, a niektóre projekty, do których przeszedłem, korzystały z Nhibernate, więc problem się nie pojawił Inicjał: W migracji znaleziono następujący błąd Szczerze mówiąc, wejdź na web.config, aby zmodyfikować konfigurację Po znalezieniu modyfikacji problem nadal jest taki – trochę zestresowany, starannie śledzony i okazuje się, że pojawia się błąd, gdy poniżej pojawia się komunikat Nhibernate OpenSession, wygląda na to, że problem leży tutaj
W tym czasie próbowałem wielu metod, w tym przepisywałem niektóre metody wywoływania nhibernate, przeglądałem mnóstwo artykułów i nigdy nie znalazłem rozwiązania, aż w końcu znalazłem wyjaśnienie z kąta, a powód błędu został rzucony i wyjaśniony, ale tłumaczenie było zbyt męczące...
Powodem wystąpienia błędu był następujący:
NHibernate.AdoNet.SqlClientSqlCommandSet
Po powyższych testach nie mogę znaleźć SqlCommandSet....
Wygląda na to, że to przez platformę
Obecne rozwiązanie
nhibernate:
usposobienie
<nazwa własności="adonet.batch_size">0</property>
FluentNhibernate:
To znaczy, dodaj. AdoNetBatchSize(0)
Jak dotąd problem został rozwiązany, a powyższe jest dla porządku, i mam nadzieję pomóc osobom, które napotkają ten sam problem, uniknąć niektórych objazdów!
|