• 《Pro ASP.NET MVC 4》异常整理


    最近在和同学一起研究毕业设计,准备模仿《Pro ASP.NET MVC 4》里面的SportsStore设计模式和测试驱动开发.

    由于和书中VS版本不同,发现不少问题,在此总结.

    用户代码未处理 System.InvalidOperationException  (msdn: 当方法调用对于对象的当前状态无效时引发的异常。)
    HResult=-2146233079
    Message=未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架提供程序。请确保在应用程序配置文件的“entityFramework”节中注册了该提供程序。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=260882。
    Source=EntityFramework
    

      

    解决方法:

    添加引用:项目文件夹packagesEntityFramework.6.1.3lib et40EntityFramework.SqlServer.dll

    System.Reflection.TargetInvocationException (由通过反射调用的方法引发的异常。)
    
    当时是在DbContext的实现类初始化时报错
    
    private EFDbContext context = new EFDbContext();
    

      

    解决方法:添加同一个引用,添加的引用版本不同,可能会出现此异常

    packagesEntityFramework.6.1.3lib et40EntityFramework.SqlServer.dll
    packagesEntityFramework.6.1.3lib et40EntityFramework.dll

    单元测试异常:

    Mock<IProductRepository> mock = new Mock<IProductRepository>();
    mock.Setup(m => m.Products).Returns(new Product[] {
    new Product { ProductID=1,Name="P1"},
    new Product {ProductID=2,Name="P2" },
    new Product {ProductID=3,Name="P3" },
    new Product { ProductID=4,Name="P4"},
    new Product {ProductID=5,Name="P5" }
    }.AsQueryable());
    
    ProductController controller = new ProductController(mock.Object);
    controller.PageSize = 3;
    
    IEnumerable<Product> result = (IEnumerable<Product>)controller.List(2).Model; 
    测试名称:	Can_Paginate
    测试全名:	SportsStore.UnitTests.UnitTest1.Can_Paginate
    测试源:	C:UsersainscDesktopSportsStoreSportsStore.UnitTestsUnitTest1.cs:第 16 行
    测试结果:	未通过
    测试持续时间: 	0:00:00.688407
    
    结果 的堆栈跟踪:	
    在 System.Web.Mvc.BuildManagerViewEngine..ctor(IViewPageActivator viewPageActivator, IResolver`1 activatorResolver, IDependencyResolver dependencyResolver, VirtualPathProvider pathProvider)
       在 System.Web.Mvc.WebFormViewEngine..ctor(IViewPageActivator viewPageActivator)
       在 System.Web.Mvc.WebFormViewEngine..ctor()
       在 System.Web.Mvc.ViewEngines..cctor()
     --- 内部异常堆栈跟踪的末尾 ---
        在 System.Web.Mvc.ViewEngines.get_Engines()
       在 System.Web.Mvc.Controller.View(String viewName, String masterName, Object model)
       在 System.Web.Mvc.Controller.View(Object model)
       在 SportsStore.WebUI.Controllers.ProductController.List(Int32 page) 位置 C:UsersainscDesktopSportsStoreSportsStore.WebUIControllersProductController.cs:行号 29
       在 SportsStore.UnitTests.UnitTest1.Can_Paginate() 位置 C:UsersainscDesktopSportsStoreSportsStore.UnitTestsUnitTest1.cs:行号 35
    结果 的消息:	
    测试方法 SportsStore.UnitTests.UnitTest1.Can_Paginate 引发了异常: 
    System.TypeInitializationException: “System.Web.Mvc.ViewEngines”的类型初始值设定项引发异常。 ---> System.IO.FileNotFoundException: 未能加载文件或程序集“System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。系统找不到指定的文件。警告: 程序集绑定日志记录被关闭。
    要启用程序集绑定失败日志记录,请将注册表值 [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD)设置为 1。
    注意: 会有一些与程序集绑定失败日志记录关联的性能损失。
    要关闭此功能,请移除注册表值 [HKLMSoftwareMicrosoftFusion!EnableLog]。
    

    解决方法:

    添加引用,程序集 System.Web.WebPages

  • 相关阅读:
    YbtOJ:NOIP2020 模拟赛B组 Day10
    洛谷11月月赛Ⅱ-div.2
    P1494 [国家集训队]小Z的袜子
    [模板]莫队/P3901 数列找不同
    P4145 上帝造题的七分钟2 / 花神游历各国
    P4109 [HEOI2015]定价
    P4168 [Violet]蒲公英
    分块
    P3378 【模板】堆(code)
    网络基础——网络层
  • 原文地址:https://www.cnblogs.com/sunyl/p/5469492.html
Copyright © 2020-2023  润新知