|
Prieš kelias dienas perkėliau seną asp.net projektą į linux, kuris yra pagrįstas asp.net 4.0 + Nhibernate + FluentNhibernate, ir susidūriau su reta problema migracijos procese, užlipau į daugybę straipsnių, įskaitant kinų, anglų, ir pagaliau radau atsakymą japonų svetainėje (pagal Google Translate), kurį galima apibūdinti kaip gana skausmingą, ir aš jį įrašiau Pirma, aplinka, į kurią reikia perkelti, yra centos6.5 + MONO + Jexus Tai atsitiko naudojant Nhibernate + mono, bet tai ne visada atsitikdavo, o kai kurie projektai, į kuriuos perėjau, naudojo Nhibernate, todėl ši problema neįvyko Pradinis: Perkeliant rasta ši klaida Taigi, sąžiningai eikite į web.config ir pakeiskite konfigūraciją Suradus modifikaciją, tai vis dar yra tokia problema, šiek tiek sunerimęs, atidžiai stebimas ir nustatyta, kad yra klaida, kai žemiau pateiktas raginimas yra Nhibernate OpenSession, atrodo, kad problema slypi čia
Šiuo metu išbandžiau daugybę metodų, įskaitant kai kurių nhibernatinių skambinimo metodų perrašymą, daugybės straipsnių nuskaitymą ir niekada neradau sprendimo, kol galiausiai radau paaiškinimą iš kampo, o klaidos priežastis buvo išmesta ir paaiškinta, bet vertimas buvo per daug varginantis...
Klaidos priežastis buvo:
NHibernate.AdoNet.SqlClientSqlCommandSet
Atlikęs aukščiau pateiktus bandymus, negaliu rasti SqlCommandSet....
Atrodo, kad taip yra dėl platformos
Dabartinis sprendimas
nhibernate:
Disponavimo
<property name="adonet.batch_size">0</property>
FluentNhibernate:
Tai yra, pridėkite. AdoNetBatchSize(0)
Iki šiol problema buvo išspręsta, ir aukščiau yra įrašas, ir aš tikiuosi padėti žmonėms, kurie susiduria su ta pačia problema išvengti kai kurių aplinkkelių!
|