Почему создаются мои контроллеры, когда их не вызывают?

Вот симптомы, которые я испытываю:

У меня есть новый пустой контроллер в области:

public class JamController : Controller
{
    public JamController()
    {
        throw new Exception("Not implemented!");
    }

Если я посещуhttp://myprojectserver.example.com:12345/urlthatdoesnotexistЯ получаю следующую ошибку:

[CompositionException: The composition produced a single composition error. The root cause is provided below. Review the CompositionException.Errors property for more detailed information.

1) Not implemented!

Resulting in: An exception occurred while trying to create an instance of type 'MyWebProject.Areas.Users.Controllers.JamController'.

Resulting in: Cannot activate part 'MyWebProject.Areas.Users.Controllers.JamController'.
Element: MyWebProject.Areas.Users.Controllers.JamController -->  MyWebProject.Areas.Users.Controllers.JamController

Resulting in: Cannot get export 'MyWebProject.Areas.Users.Controllers.JamController (ContractName="System.Web.Mvc.IController")' from part 'MyWebProject.Areas.Users.Controllers.JamController'.
Element: MyWebProject.Areas.Users.Controllers.JamController (ContractName="System.Web.Mvc.IController")
]
   System.ComponentModel.Composition.Hosting.CompositionServices.GetExportedValueFromComposedPart(ImportEngine engine, ComposablePart part, ExportDefinition definition) +55
   System.ComponentModel.Composition.Hosting.CatalogExportProvider.GetExportedValue(CatalogPart part, ExportDefinition export, Boolean isSharedPart) +78
   System.ComponentModel.Composition.Hosting.CatalogExport.GetExportedValueCore() +47
   System.ComponentModel.Composition.Primitives.Export.get_Value() +57
   System.ComponentModel.Composition.ExportServices.GetCastedExportedValue(Export export) +40
   System.ComponentModel.Composition.c__DisplayClassa`1.b__6() +39
   System.Lazy`1.CreateValue() +416
   System.Lazy`1.LazyInitValue() +382
   System.Lazy`1.get_Value() +75
   MefContrib.Web.Mvc.c__DisplayClass4.b__0(Lazy`1 e) +53
   System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +204
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +381
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +58
   MefContrib.Web.Mvc.CompositionControllerFactory.GetControllerType(RequestContext requestContext, String controllerName) +412
   System.Web.Mvc.DefaultControllerFactory.System.Web.Mvc.IControllerFactory.GetControllerSessionBehavior(RequestContext requestContext, String controllerName) +61
   System.Web.Mvc.MvcRouteHandler.GetSessionStateBehavior(RequestContext requestContext) +122
   System.Web.Mvc.MvcRouteHandler.GetHttpHandler(RequestContext requestContext) +33
   System.Web.Mvc.MvcRouteHandler.System.Web.Routing.IRouteHandler.GetHttpHandler(RequestContext requestContext) +10
   System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context) +9709884
   System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object sender, EventArgs e) +82
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +136
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +699

Мой вопрос "Зачем?" С какой стати он пытается создать экземпляр этого контроллера? Где я могу посмотреть, чтобы определить, что является причиной этого. Я'я уверен, что это не такожидаемое поведение для создания экземпляров каждого контроллерастраница не найдена ".I '

Я в недоумении, чтобы знать, где искать. Может ли кто-нибудь указать мне направление, которое поможет?

ОБНОВИТЬ:

Оказывается, что метод SetControllerFactory ниже вызывает проблему:

// Tell MVC3 to use MEF as its dependency resolver.
var dependencyResolver = new CompositionDependencyResolver(catalog);
DependencyResolver.SetResolver(dependencyResolver);

// Tell MVC3 to resolve dependencies in controllers
ControllerBuilder.Current.SetControllerFactory(
    new CompositionControllerFactory(
        new CompositionControllerActivator(dependencyResolver)));

КомментируяСкажите MVC3 разрешить зависимости в контроллерах раздел исправляет мою проблему, и никакие контроллеры, кроме тех, о которых я прошу, не создаются. К счастью, этонужно только если тыне использовать стандартное разрешение контроллера Asp.Net (и мы).

Ответы на вопрос(2)

Ваш ответ на вопрос