《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
解决方法:
添加引用:项目\文件夹\packages\EntityFramework.6.1.3\lib\net40\EntityFramework.SqlServer.dll
System.Reflection.TargetInvocationException (由通过反射调用的方法引发的异常。) 当时是在DbContext的实现类初始化时报错 private EFDbContext context = new EFDbContext();
解决方法:添加同一个引用,添加的引用版本不同,可能会出现此异常
\packages\EntityFramework.6.1.3\lib\net40\EntityFramework.SqlServer.dll
\packages\EntityFramework.6.1.3\lib\net40\EntityFramework.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:\Users\ainsc\Desktop\SportsStore\SportsStore.UnitTests\UnitTest1.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:\Users\ainsc\Desktop\SportsStore\SportsStore.WebUI\Controllers\ProductController.cs:行号 29
在 SportsStore.UnitTests.UnitTest1.Can_Paginate() 位置 C:\Users\ainsc\Desktop\SportsStore\SportsStore.UnitTests\UnitTest1.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”或它的某一个依赖项。系统找不到指定的文件。警告: 程序集绑定日志记录被关闭。
要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1。
注意: 会有一些与程序集绑定失败日志记录关联的性能损失。
要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。
解决方法:
添加引用,程序集 System.Web.WebPages
《Pro ASP.NET MVC 4》异常整理的更多相关文章
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.11.ASP.NET MVC3的细节:概览MVC项目
书Adam The Definitive Guide to HTML5 Adam Applied ASP.NET 4 in Context and Pro ASP.NET 4 到此为止,我们已经学了为 ...
- WinDBg定位asp.net mvc项目异常崩溃源码位置
项目介绍:asp.net mvc + angular +iis(windows)+windows server 系统莫名崩溃 最近有个系统默认奇妙崩溃50x,服务整体变成无响应,当运维告知我只有重启应 ...
- Pro ASP.NET MVC –第六章 MVC的基本工具
在本章,我们将介绍每个MVC程序员"武器库"的三个重要工具:依赖注入容器.单元测试框架和mock工具.在本书,对于三个工具分别都只用了一种方式实现,但每个工具都还有其他的实现方式. ...
- Pro ASP.NET MVC –第四章 语言特性精华
C#语言有很多特性,并不是所有的程序员都了解本书我们将会使用的C#语言特性.因此,在本章,我们将了解一下作为一个好的MVC程序员需要了解C#语言的特性. 每个特性我们都只是简要介绍.如果你想深入了解L ...
- Pro ASP.NET MVC 5 Framework.学习笔记.6.3.MVC的必备工具
每个MVC程序员的军火库中,都有这三个工具:一个依赖注入(DI)容器,一个单元测试框架,一个模拟工具. 1.准备一个示例项目 创建一个ASP.NET MVC Web Application的Empty ...
- ASP.NET MVC显示异常信息
开发ASP.NET多了,它的异常信息显示也习惯了.但在ASP.NET MVC中,却是另外一番情形. 以前只习惯使用IE浏览器,现在开发ASP.NET MVC程序,为了捕获到异常信息,Firefox的f ...
- [Asp.net MVC]HandleErrorAttribute异常过滤器
摘要 在asp.net mvc中除了使用try...catch/finally来处理异常外,它提供了一种通过在Controller或者Action上添加特性的方式来处理异常. HandleErrorA ...
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.12.ASP.NET MVC3的细节:URLs,Routing和Areas
Adam Applied ASP.NET 4 in Context 1 介绍Routing系统 在引入MVC之前,ASP.NET假定被请求的URLs和服务器硬盘上的文件之间有着直接关系.服务器的任务是 ...
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.9.SportsStore:Securing the Administration Features
1 设置表单身份认证 因为ASP.NET MVC基于ASP.NET平台的核心,所以我们可以使用ASP.NET Form的身份认证,这是保持用户登录轨迹通用的方法.现在介绍最基本的配置. 在Web.co ...
随机推荐
- android内部培训视频_第三节 常用控件(Button,TextView,EditText,AutocompleteTextView)
第三节:常用控件 一.Button 需要掌握的属性: 1.可切换的背景 2.9.png使用 3.按钮点击事件 1) onClick 3) 匿名类 4) 公共类 二.TextView 常用属性 1.a ...
- 老司机学新平台 - Xamarin Forms开发框架二探 (Prism vs MvvmCross)
在上一篇Xamarin开发环境及开发框架初探中,曾简单提到MvvmCross这个Xamarin下的开发框架.最近又评估了一些别的,发现老牌Mvvm框架Prism现在也支持Xamarin Forms了, ...
- Atitit 深入理解抽象类与接口 attilax总结
Atitit 深入理解抽象类与接口 attilax总结 1.1. 主要区别接口侧重于动作抽象..抽象类是属性名词抽象..1 1.2. 抽象层次类>>抽象类>>接口1 1.3. ...
- python网络编程——IO多路复用之epoll
1.内核EPOLL模型讲解 此部分参考http://blog.csdn.net/mango_song/article/details/42643971博文并整理 首先我们来定义流的概念,一个流 ...
- Bower : ENOGIT git is not installed or not in the PATH
解决方法一: 添加git到window的环境变量中.设置path路径为C:\Program Files\Git\bin 解决方法二: $ set PATH=%PATH%;C:\Program File ...
- OpenCascade B-Spline Basis Function
OpenCascade B-Spline Basis Function eryar@163.com Abstract. B-splines are quite a bit more flexible ...
- [转]自己写PHP扩展之创建一个类
原文:http://www.imsiren.com/archives/572 比如我们要创建一个类..PHP代码如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- 前端学PHP之变量
× 目录 [1]变量定义 [2]关键字 [3]变量赋值[4]可变变量[5]变量函数 前面的话 变量是用于临时存储值的容器.这些值可以是数字.文本,或者复杂得多的排列组合.变量在任何编程语言中都居于核心 ...
- ASP.NET MVC下的四种验证编程方式[续篇]
在<ASP.NET MVC下的四种验证编程方式>一文中我们介绍了ASP.NET MVC支持的四种服务端验证的编程方式("手工验证"."标注Validation ...
- 跟我学Angular2(1-初体验)
0.导言 Angular1作为最流行的前端MV*框架,给前端开发带来了极大的便利性.但是,仍然有许多不好的地方已经很难再改变了.Angular团队根据WEB发展的趋势和Angular1中积累的经验来开 ...