У меня есть два веб-проекта в одном решении, первый запускается, а второй выдает ошибку:
"Обнаружено несколько типов, соответствующих контроллеру с именем" Home ". Это может произойти, если маршрут который обслуживает этот запрос ('Home / {action} / {id}')) не указывает пространства имен для поиска контроллера, соответствующего запросу. Если это так, зарегистрируйте этот маршрут, вызвав перегрузку метода 'MapRoute' который принимает параметр 'namespaces'. "
Я указываю, что:
- Два проекта имеют разные пространства имен (Intr anet / Extr anet).
- Два проекта полностью независимы.
- Два проекта не ссылаются друг на друга.
- Я НЕ хочу добавлять зону.
- Два проекта (в разработке), размещенный на моем локальном IIS, каждое с другим доменным именем (intr anet .lan / extr anet .lan).
Я не понимаю, как сказать Visual Студия не смотреть в других проектах. Такое поведение действительно ненормально, я думаю, что это ошибка или очень плохая стратегия проектирования.
Я также предполагаю, что прочитал много постов, посвященных этой теме, даже не найдя ответа. Каждый создает область (я не хочу, потому что это не «чистое» создание области в проекте только для проекта, что-то совершенно глупое и нелогичное).
Если кто-то может мне помочь, это будет очень приятно.
Редактировать:
Я помещаю свой проект Extr anet в отдельную директорию, создаю новое решение и добавляю его. Я настраиваю его для запуска под IIS Express, и он также сообщает мне, что находит два контроллера. Это Intr anet и Extr anet. Однако Ctrl + F с "Intr anet" в проекте extr anet не дает результатов. Я также открыл файл проекта и решения и не могу найти ссылку на Intr anet. Невероятно, но проект Intr anet, похоже, связан с extr anet, но без каких-либо ссылок или понятий в коде. Даже после перестройки проекта.
Edit2:
Я пытался с
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Extranet.Controllers" }
);
Или
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Extranet.Controllers" }
);
Но без эффекта.