0

在我的应用程序中,我有一个显示记录列表的页面,每条记录都有一个链接可以单击以获取该记录的更多详细信息。它转到另一个控制器。让我讲一个顺序。从“ToDoListSelect”控制器转到“ToDoList”,单击 ToDoList 中的链接后转到“Info”控制器。在我的开发机器上一切正常,数据库与服务器上的相同。现在,我将包放在服务器上,如果页面上的记录少于 500 条左右,它就可以正常工作。如果有更多记录,那么来自 ToDoList 它不会转到 Info 但会引发异常,我看到它会转到 ToDoListSelect 这很奇怪。我不知道从哪里开始寻找问题。有什么建议么?任何需要的细节都告诉我。

以下是我的应用程序中的路线:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
    routes.MapRoute( "Default", // Route name 
        "{controller}/{action}/{id}", // URL with parameters 
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
    ); 
} 

protected void Application_Start() 
{ 
    AreaRegistration.RegisterAllAreas(); 
    RegisterGlobalFilters(GlobalFilters.Filters); 
    RegisterRoutes(RouteTable.Routes); 
}

抛出的错误是:

“/”应用程序中的服务器错误。由于对象的当前状态,该操作无效。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关此错误的更多信息,查看并确定错误源自代码的位置。

异常详细信息:System.InvalidOperationException:由于对象的当前状态,操作无效。

源错误:

在执行当前 Web 请求期间,产生了一个未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

[InvalidOperationException: Der Vorgang ist aufgrund des aktuellen Zustands des Objekts ungültig.]
   System.Web.HttpRequest.FillInFormCollection() +11485999
   System.Web.HttpRequest.get_Form() +157
   Microsoft.Web.Infrastructure.DynamicValidationHelper.<>c__DisplayClass12.<ReplaceCollection>b__e() +63
   Microsoft.Web.Infrastructure.DynamicValidationHelper.<>c__DisplayClass12.<ReplaceCollection>b__11() +20
   Microsoft.Web.Infrastructure.DynamicValidationHelper.DeferredCountArrayList.get_Count() +20
   System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection) +34
   System.Web.HttpRequest.get_Form() +212
   System.Web.Mvc.FormValueProvider..ctor(ControllerContext controllerContext, IUnvalidatedRequestValues unvalidatedValues) +55
   System.Web.Mvc.FormValueProviderFactory.GetValueProvider(ControllerContext controllerContext) +61
   System.Web.Mvc.<>c__DisplayClassc.<GetValueProvider>b__7(ValueProviderFactory factory) +28
   System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +238
   System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +148
   System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +472
   System.Linq.Enumerable.ToList(IEnumerable`1 source) +80
   System.Web.Mvc.ValueProviderFactoryCollection.GetValueProvider(ControllerContext controllerContext) +347
   System.Web.Mvc.ControllerBase.get_ValueProvider() +46
   System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +80
   System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +153
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +691
   System.Web.Mvc.Controller.ExecuteCore() +162
   System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +305
   System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62
   System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +469
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375
4

1 回答 1

0

弄清楚了!谢谢谷歌先生! http://geekswithblogs.net/renso/archive/2012/01/19/operation-is-not-valid-due-to-the-current-state-of.aspx

将更改放在 web.config 中,它工作正常。

于 2012-07-19T08:05:44.790 回答