Nano Hash - криптовалюты, майнинг, программирование

Инициализатор контроллера MVC вызывается много раз

Проблема:

Когда я загружаю свое приложение, оно много раз пытается инициализировать главный контроллер, и я хотел бы знать, почему... это сводит меня с ума. проверить, я согласен!!.

MVC3 С# с использованием Unity в качестве IoC

Контроллер:

    public ValorationController(IServiceProxy serviceProxy, 
                                IHvmService hvmService, 
                                IFamilyGroupService familyGroupService, 
                                IClientService clientService,
                                IUserService userService,
                                IOfficeService delegationService,
                                ISocietyService societyService,
                                IFamilyService familyService,
                                IArticleService articleService,
                                IArticleFinishedService articleFinishedService,
                                IOrderService orderService)
        : base(serviceProxy)
    {
        FamilyService = familyService;
        ArticleService = articleService;
        HvmService = hvmService;
        FamilyGroupService = familyGroupService;
        ClientService = clientService;
        UserService = userService;
        DelegationService = delegationService;
        SocietyService = societyService;
        ArticleFinishedService = articleFinishedService;
        OrderService = orderService;
    } 

  • Спасибо за код, но это не объясняет проблемы, с которой вы столкнулись. Когда инициализируется главный контроллер? Как вы думаете, почему он инициализируется много раз? Почему вы считаете, что это неправильно? 14.11.2012
  • Нужно будет включить еще больше деталей, чем это 14.11.2012
  • Основной контроллер по умолчанию инициализируется на пути регистрации, я думал, что это для ошибок CSS и HTML, таких как сбойные ссылки... но я проверил это и не смог найти ошибку... 14.11.2012

Ответы:


1

Ваш контроллер будет инициализироваться при каждом запросе, в котором он задействован.

Это нормально и так работает IIS.

14.11.2012
  • Привет, Одед, спасибо за быстрый ответ. Я выполняю только одно действие (один запрос) по умолчанию на RegisterRoutes. Как я могу проверить все запросы, которые выполняются моим контроллером? чтобы проверить эту ошибку, я искал скрипача, но не могу найти 14.11.2012
  • @ user1520494 - Тогда как вы определили, что контроллер был инициализирован несколько раз? Откуда вы знаете? 14.11.2012
  • Потому что я исправляю точку останова на контроллере и остановился 14 раз, прежде чем показать основной вид 14.11.2012
  • Я удалил все параметры в моем конструкторе контроллера и все еще делаю то же самое... 14.11.2012
  • @ user1520494 - Отлично. Вы смотрели на трассировку стека эти 14 раз? Это скажет вам, что вызывает контроллер. 14.11.2012
  • Я проверил, но я получаю вызов из внешнего кода без дополнительной информации, 14.11.2012
  • @user1520494 user1520494 - Невозможно помочь с предоставленной вами информацией. 14.11.2012
  • @ user1520494: отключите «Только мой код» в параметрах отладчика. 15.11.2012

  • 2

    Также полезно знать, что каждый Unity Resolve по умолчанию создает новый instance. Если вы этого не хотите, вы должны предоставить LifeTimeManager

    Прочтите статьи Microsoft о понимании Lifetime Manager. и Использование Lifetime Manager.

    Возможно, вы захотите использовать что-то вроде этого:

    // Register a default (un-named) type mapping with a singleton lifetime 
    myContainer.RegisterType<IMyObject, MySingletonObject>(new ContainerControlledLifetimeManager());
    // Following code will return a singleton instance of MySingletonObject// Container will take over lifetime management of the object
    myContainer.Resolve<IMyObject>();
    
    15.11.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..