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