|
Pred pár dňami som presunul starý projekt asp.net na Linux, ktorý je založený na asp.net 4.0 + Nhibernate + FluentNhibernate, a počas migrácie som narazil na zriedkavý problém, prešiel som množstvo článkov, vrátane čínštiny, angličtiny, a nakoniec som našiel odpoveď na japonskej webovej stránke (cez Google Translate), čo sa dá opísať ako dosť bolestivé, a zaznamenal som to Po prvé, prostredie na migráciu je centos6.5 + MONO + Jexus Stalo sa to pod Nhibernate + mono, ale nie vždy sa to stalo, a niektoré projekty, na ktoré som migroval, používali Nhibernate, takže tento problém sa neobjavil Iniciála: Pri migrácii bola zistená nasledujúca chyba Úprimne, choďte na web.config a upravte konfiguráciu Po nájdení tejto úpravy je to stále taký problém, trochu znepokojený, starostlivo sledovaný a zistil som, že je chyba, keď je nižšie výzva Nhibernate OpenSession, zdá sa, že problém je tu
V tom čase som vyskúšal veľa metód, vrátane prepísania niektorých metód volania nhibernate, prehľadávania veľa článkov a nikdy som nenašiel riešenie, až kým som nakoniec nenašiel vysvetlenie z rohu a dôvod chyby bol vysvetlený, ale preklad bol príliš únavný...
Dôvodom chyby bolo:
NHibernate.AdoNet.SqlClientSqlCommandSet
Pri vyššie uvedených testoch som nenašiel SqlCommandSet....
Zdá sa, že je to kvôli platforme
Súčasné riešenie
nhibernate:
dispozícia
<názov vlastnosti="adonet.batch_size">0</property>
FluentNhibernate:
Teda, pridaj. AdoNetBatchSize(0)
Doteraz bol problém vyriešený a vyššie uvedené je pre záznam, a dúfam, že pomôžem ľuďom, ktorí sa s rovnakým problémom stretnú, vyhnúť sa niektorým odbočkám!
|