我正在使用StructureMap 2.6.4.1
新的MVC 5项目。以前,在MVC 4项目中,我们的设置工作正常。
我们有一个SM控制器工厂,例如:
public class StructureMapControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
var instance = ObjectFactory.GetInstance(controllerType) as IController;
if (instance == null)
{
return base.GetControllerInstance(requestContext, controllerType);
}
return instance;
}
}
在 Global.asax.cs 中,在app start中,我们将其设置为:
ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory());
The issue is, if this last line is enabled in app start, we get this:
**[EntryPointNotFoundException: Entry point was not found.]**
System.Web.Mvc.IControllerFactory.GetControllerSessionBehavior(RequestContext requestContext, String controllerName) +0
System.Web.Mvc.MvcRouteHandler.GetSessionStateBehavior(RequestContext requestContext) +131
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) +9767524
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) +69
同样,这在我们的MVC 4
项目中运行得很好,但是我找不到与MVC 5相关的足够信息。我不想回到MVC 4,但是如果必须的话。感谢。
答案 0 :(得分:2)
答案 1 :(得分:1)
修正了我自己的问题。出于某种原因,当我创建一个新的MVC5项目时,它仍然引用旧的WebPages 2.0和MVC 4程序集。不知道为什么。我通过nuget运行了更新,它修复了问题(它还将其他现有的MVC4应用程序更新为5个没有问题)。
Ramesh,从技术上讲,你的回答是正确的。