дозвуковой - смещение и длина вышли за пределы для неустойчивой ошибки массива - PullRequest
1 голос
/ 20 декабря 2011

унаследовал веб-сайт, который использует subsonic 2.0 и получает прерывистую ошибку «Смещение и длина вышли за пределы массива». Если бы мы перезапустили приложение или переработали пул приложений, проблема исчезла бы. Я подозреваю, что это как-то связано с дозвуковым кэшированием схемы таблицы на основе журнала ошибок ниже. Кто-нибудь сталкивался с этой проблемой и может предложить решение?

System.ArgumentException

Смещение и длина вышли за пределы массива или счетчика больше, чем количество элементов от индекса до конца исходной коллекции.

System.Exception: было сгенерировано исключение типа System.Web.HttpUnhandledException. ---> System.ArgumentException: смещение и длина вышли за пределы массива, или их число превышает количество элементов от индекса до конца исходной коллекции. в System.Array.BinarySearch [T] (массив T [], индекс Int32, длина Int32, значение T, IComparer 1 comparer) at System.Collections.Generic.SortedList 2.IndexOfKey (клавиша TKey) в System.Collections.Generic.SortedList`2.ContainsKey (ключ TKey) в SubSonic.DataService.GetSchema (Строка tableName, Строка providerName, TableType tableType) в SubSonic.DataService.GetTableSchema (Строка tableName, Строка providerName) at SubSonic.Query..ctor (String tableName) в G05.ProductController.GetProductByColorName (Int32 productId, String colorName) в C: \ Projects \ G05 \ Code \ BusinessLogic \ ProductController.vb: строка 514

1 Ответ

0 голосов
/ 14 января 2012

Странно, что это с перебоями. Как создаются объекты? Используется ли файл .abp? Если это так, я бы порекомендовал запускать файлы через субкомандера, чтобы жестко генерировать классы. Таким образом, генерация объектов никогда не выполняется в производственной среде.

...