1

我正在 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 中的错误配置吗?

4

1 回答 1

1

这更适合人们在研究相同问题时偶然发现这个问题。我只是亲身经历过。我有这行代码一直在我的应用程序中工作:

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 以快速修复某些问题。

祝你好运!

于 2013-05-17T19:12:23.867 回答