|
Преди няколко дни преместих стар проект на asp.net в Linux, който е базиран на asp.net 4.0 + Nhibernate + FluentNhibernate, и се сблъсках с рядък проблем по време на миграцията, изкачих много статии, включително китайски, английски, и най-накрая намерих отговора на японски уебсайт (чрез Google Translate), което може да се опише като доста болезнено, и го записах Първо, средата, към която трябва да се мигрира, е centos6.5 + MONO + Jexus Това се случи при Nhibernate + mono, но не винаги се случваше, а някои от проектите, към които мигрирах, използваха Nhibernate, така че този проблем не се появи Първоначално: Следната грешка беше открита при миграцията Така че, честно казано, отидете на web.config, за да променяте конфигурацията След като намерих модификацията, проблемът все още е такъв – малко притеснен, внимателно проследен и установено, че има грешка, когато подсказката по-долу е Nhibernate OpenSession, изглежда, че проблемът е тук
По това време пробвах много методи, включително пренаписване на някои nhibernate call методи, прелистване на много статии и никога не намерих решение, докато най-накрая не намерих обяснение от ъгъла, и причината за грешката беше хвърлена и обяснена, но преводът беше твърде изтощителен...
Причината за грешката беше:
NHibernate.AdoNet.SqlClientSqlCommandSet
С горните тестове не мога да намеря SqlCommandSet....
Изглежда, че причината е платформата
Текущо решение
nhibernate:
разоложение
<име на имот="adonet.batch_size">0</property>
FluentNhibernate:
Тоест, добави. AdoNetBatchSize(0)
Досега проблемът е решен и горното е само за протокола, и се надявам да помогна на хората, които се сблъскват със същия проблем, да избегнат някои отклонения!
|