|
Muutama päivä sitten siirsin vanhan asp.net-projektin Linuxille, joka perustuu asp.net 4.0 + Nhibernate + FluentNhibernateen, ja kohtasin harvinaisen ongelman siirtymäprosessissa, kiipesin paljon artikkeleita, mukaan lukien kiinaa, englantia, ja lopulta löysin vastauksen japanilaiselta verkkosivustolta (Google Translatella), jota voi kuvailla melko kivuliaaksi, ja olen tallentanut sen Ensinnäkin siirrettävä ympäristö on centos6.5 + MONO + Jexus Tämä tapahtui Nhibernate + mono -tilassa, mutta ei aina, ja jotkut projekteista, joihin siirryin, käyttivät Nhibernatea, joten tätä ongelmaa ei tullut Alkukirjain: Seuraava virhe havaittiin siirtymässä Joten rehellisesti, mene web.config -sivustolle muuttaaksesi asetuksia Muokkauksen löytymisen jälkeen ongelma on edelleen olemassa, hieman huolissaan, tarkasti seurattu, ja havaittiin, että alla oleva kehote on Nhibernate OpenSession, ongelma näyttää olevan tässä
Tänä aikana kokeilin monia menetelmiä, kuten kirjoittamalla uudelleen joitakin nhibernate-kutsumenetelmiä, selasin paljon artikkeleita, enkä koskaan löytänyt ratkaisua, kunnes lopulta löysin selityksen nurkasta, ja virheen syy heitettiin ja selitettiin, mutta käännös oli liian uuvuttava...
Virheen syynä oli:
NHibernate.AdoNet.SqlClientSqlCommandSet
Yllä olevilla testeillä en löydä SqlCommandSetiä....
Vaikuttaa siltä, että syynä on alusta
Nykyinen ratkaisu
nhibernate:
taipumus
<property name="adonet.batch_size">0</property>
FluentNhibernate:
Eli lisää. AdoNetBatchSize(0)
Tähän mennessä ongelma on ratkaistu, ja yllä oleva on vain tiedoksi, ja toivon voivani auttaa ihmisiä, jotka kohtaavat saman ongelman, välttämään joitakin kiertoteitä!
|