我正在开发MVC中的应用程序。当我在每个浏览器中进行调试时,一切都很有效。 问题是,一旦我在服务器中安装应用程序,我无法使其工作,因为它只在IE8中显示了下一个异常,:
Object reference not set to an instance of an object.
at Eco.Administration.Web.UI.Controllers.CatalogController.ProcesarListaFactoresPorFiltro(String Rama, String TipoCredito, String Periodo, String Ubicacion)
at Eco.Administration.Web.UI.Controllers.CatalogController.EcoEditaXML(String Ram, String Tip, String Perio, String ubica, Int32 Id, String mensaje)
at *lambda_method(Closure ,* ControllerBase , Object[] )
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
我已经意识到当我在控制器中删除一行(lambda函数)时,它可以正常工作。
有人知道IE8中是否存在与lambda函数相关的问题? 它可能是IIS中的错误配置吗?
答案 0 :(得分:0)
对于在研究同一问题时绊倒这个问题的人来说,这更多。我自己就是经历过的。我有这行代码永远在我的应用程序中工作:
STemplate stemplate = db.STemplates.Include(t=>t.STemplateTabs).Where(t=>t.Id == id).FirstOrDefault();
突然之间,我开始得到这样的例外:
System.NullReferenceException:未将对象引用设置为实例 一个对象。在 WebUI.Areas.Admin.Controllers.STemplateController.Details(的Int32 id)在lambda_method(Closure,ControllerBase,Object [])
在System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary`2参数)等......
我一直盯着我无辜的路线,试图找出可能会破坏的东西。一时兴起,我解雇了SQL Server Profiler并看到该呼叫实际上已经通过了!问题出在我的查询下面的行。在我的情况下,我设置的cookie值应该在web.config中,但不存在,因此空引用异常。另一个原因是每次都要进行适当的部署,而不是快速替换服务器上的DLL来快速修复。
祝你好运!