【发布时间】:2011-01-28 19:13:25
【问题描述】:
我们正在 IIS 上部署一个基于 MVC2 的应用程序,用于漂浮在 Internet 中的生产环境。发生错误,这是引发错误的过程:
- 用户单击链接以显示 Web 表单
- 用户插入数据。
- 用户提交表单。
- 应用程序显示错误。它的跟踪显示对象的引用未设置为实例。显然,MVC 的引擎丢失了与模型有关的 HTTP POST 请求数据,因此系统在操作执行的未指定时间为操作的参数分配了一个空值。
在测试环境中,在我们的 Intranet 上,这个问题从未发生过。
这是错误:
// Error
Exception Error: Object reference not set to an instance of an object.
Exception Source: MagaARPIU
Exception Data: System.Collections.ListDictionaryInternal
Exception Trace: at MagaARPIU.Areas.GestionComercial.Controllers
.ProspectacionController.IngresarEmpresa(InfoEmpresa modelo)
in C:\Desarrollo\calvarez\codigo\Gacela ARP - Publicaciones\Gacela ARP\Maga\MagaARPIU\Areas\GestionComercial\Controllers\ProspectacionController.cs:line 151
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__DisplayClassd.<InvokeActionMethodWithFilters>b__a()
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)
// -- ProspectacionController.cs
105 [RolAuthorizationAttribute]
106 public ActionResult IngresarEmpresa()
107 {
108 var modelo = new InfoEmpresa();
...
113 modelo.DatosIdentificacion = new DatosIdentificacion();
...
137 return View("IngresarEmpresa1", modelo);
...
139 }
145 [HttpPost]
146 [RolAuthorizationAttribute]
147 public ActionResult IngresarEmpresa(InfoEmpresa modelo)
148 {
...
151 if (!modelo.DatosIdentificacion.Completo)
152 {
...
179 }
...
305 }
你知道发生了什么以及如何解决这个问题吗?
【问题讨论】:
-
请复制/粘贴 asp.net 错误信息。
-
我已经发布了错误的跟踪和一些代码......
-
在第 151 行放置一个断点。查看“modelo”对象和“DatosIdentificacion”属性。我相信你会发现这两个中的一个是空的。
-
这就是问题所在……在开发和测试环境下,我们能够看到堆栈跟踪并进行调试。这些环境运行良好。问题出现在生产环境中,我们无法在那里调试。我们怀疑它必须与 IIS 上的会话管理有关...
标签: .net asp.net-mvc-2 iis web-applications deployment