ustimenko (ustimenko) wrote,
ustimenko
ustimenko

Global assembly cache — ЗЛО!

Сегодня ушло у меня 6 часов на то, чтобы отыскать хитрейший баг на будущем модуле сайта nsuem.ru

Мы в проекте в качестве слоя бизнес-логики используем CSLA.NET, в котором есть замечательный класс ObjectListView, умеющий сортировать и фильтровать списки объектов.

Но вот незадача! Вроде все правильно, все по коду, но выдается ошибка, причем странная: как-будто у конструктора ObjectListView(ILIst list, string sorting) второй параметр на самом деле string filter!

Я дооолго искал, искал и искал причину, пока наконец не нашел, что на сервере, где это происходит, есть несколько версий dll`ки CSLA, которые для начала различались размером.

Открыв их все в VS Object Explorer`ом я с удивлением обнаружил, что во одной из dll`ек и в самом деле второй string`овый параметр под именем filter! Ха!

Ладно, уже легче стало... Потом я вроде отключил все упомимания на эту старую dll`ку в apache и несколько раз его перезагружал — ноль эмоций. Пока я наконец-то не вспомнил о том, что гадкие (на самом деле заботливые :) дяди изобрели когда-то GAC и что там эта штука старая может спокойно жить и имеено ее apache цепляет. Так и вышло!

В итоге я ее оттуда снес и заново добавил (уже новую версию) и ву-а-ля!!!
Tags: apache, c#, csla, gac, опыт, разработка
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments