Asp.net mvc 4 ASP.NET MVC4结构图例外代码202

Asp.net mvc 4 ASP.NET MVC4结构图例外代码202,asp.net-mvc-4,structuremap,Asp.net Mvc 4,Structuremap,我正在将ASP.NET MVC3(LinqToSQL,EntityFramework)项目转换为MVC4。我在VS2012中创建了一个新的MVC4项目,添加了包,复制了我的视图、控制器等 除了我尝试访问使用Respository的控制器时,大多数事情似乎都可以正常工作,如下所示: public class CustomerController : Controller { private ICustomerRepository _cr; public CustomerContr

我正在将ASP.NET MVC3(LinqToSQL,EntityFramework)项目转换为MVC4。我在VS2012中创建了一个新的MVC4项目,添加了包,复制了我的视图、控制器等

除了我尝试访问使用Respository的控制器时,大多数事情似乎都可以正常工作,如下所示:

public class CustomerController : Controller
{
    private ICustomerRepository _cr;

    public CustomerController()
    {
        this._cr = new CustomerRepository(TTDataProvider.DB);
    }

    public CustomerController(ICustomerRepository customerRepository)
    {
        this._cr = customerRepository;
    }
如果我在VS2012中进行调试,我将得到一个异常:“尝试获取CustomerController类型的实例时发生激活错误,键为”“。”。异常类型为Microsoft.Practices.ServiceLocation.Activation,内部异常为:“StructureMap异常代码:202\n未为PluginFamily TTLW.Models.TTLWDataContext定义默认实例,TTLW,版本=1.0.0.0,区域性=中性,PublicKeyToken=null”}

我的国际奥委会代码是:

using StructureMap;
using FluentSecurity;
using System.Diagnostics;
namespace TTLW {
    public static class IoC {
        public static IContainer Initialize() {
            ObjectFactory.Initialize(x =>
                        {
                            x.Scan(scan =>
                                    {
                                        scan.TheCallingAssembly();
                                        scan.WithDefaultConventions();
                                        scan.AddAllTypesOf<IPolicyViolationHandler>();
                                    });
                        });
            return ObjectFactory.Container;
        }
    }
}
正如我所说,在我的MVC3应用程序中,这一切都可以正常工作(当然,我使用的是MVC3版本的StructureMap)

一旦我遇到异常,如果我只是选择继续,那么一切都正常(即控制器功能);通过选择“启动而不调试”而不是“调试”来确认这一点。当我这样做的时候,不会抛出任何异常,事情按照设计进行

我搜索过Phil Haack、Brett Allred和其他人的帖子(事实上,我已经在StructureMapMVC的最后一行中合并了Allred的代码),但没有找到解决方案。我不能考虑这个项目被转换,只要这个例外正盯着我。

我已经包含了我认为合理的所有代码和消息,希望您能提供一些见解。如果你需要看更多,请告诉我


提前谢谢。

你看过这篇帖子了吗:不,这是我在搜索中没有找到的帖子。我对MVC3没有任何问题感到恼火,但我会研究这篇文章,希望我能学到一些东西。非常感谢。答案在这里:。我自己永远也不会明白这一点,这就是互联网的伟大之处,尤其是它。
using System.Web.Http;
using System.Web.Mvc;
using StructureMap;
using TTLW.DependencyResolution;

[assembly: WebActivator.PreApplicationStartMethod(typeof(TTLW.App_Start.StructuremapMvc), "Start")]

namespace TTLW.App_Start {
    public static class StructuremapMvc {
        public static void Start() {
            IContainer container = IoC.Initialize();
            DependencyResolver.SetResolver(new StructureMapDependencyResolver(container));
            GlobalConfiguration.Configuration.DependencyResolver = DependencyResolver.Current.ToServiceResolver();
        }
    }
}