Ich kenne diesen Fehler und Dutzende von Fragen wurden bereits gestellt. Aber meine Frage ist nicht "warum", es geht um "wie man debuggt".Wie zu debuggen "Index war außerhalb der Grenzen des Arrays" in DNN
Ich habe ein DNN CMS installiert und ein Modul dafür entwickelt. Manchmal wirft es diesen Fehler:
at System.Collections.Generic.List`1.Enumerator.MoveNext()
at System.Linq.Enumerable.<ConcatIterator>d__58`1.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at System.Web.Http.Services.DefaultServices.GetServices(Type serviceType)
at System.Web.Http.ServicesExtensions.GetServices[TService](ServicesContainer services)
at System.Web.Http.ModelBinding.ModelBinderAttribute.GetModelBinderProvider(HttpConfiguration configuration)
at System.Web.Http.ModelBinding.ModelBinderAttribute.GetModelBinder(HttpConfiguration configuration, Type modelType)
at System.Web.Http.ModelBinding.ModelBinderAttribute.GetBinding(HttpParameterDescriptor parameter)
at System.Web.Http.ModelBinding.DefaultActionValueBinder.GetParameterBinding(HttpParameterDescriptor parameter)
at System.Array.ConvertAll[TInput,TOutput](TInput[] array, Converter`2 converter)
at System.Web.Http.ModelBinding.DefaultActionValueBinder.GetBinding(HttpActionDescriptor actionDescriptor)
at System.Web.Http.Tracing.Tracers.ActionValueBinderTracer.System.Web.Http.Controllers.IActionValueBinder.GetBinding(HttpActionDescriptor actionDescriptor)
at System.Web.Http.Controllers.HttpActionDescriptor.get_ActionBinding()
at System.Web.Http.Controllers.ApiControllerActionSelector.ActionSelectorCacheItem..ctor(HttpControllerDescriptor controllerDescriptor)
at System.Web.Http.Controllers.ApiControllerActionSelector.GetInternalSelector(HttpControllerDescriptor controllerDescriptor)
at System.Web.Http.Controllers.ApiControllerActionSelector.SelectAction(HttpControllerContext controllerContext)
at System.Web.Http.Tracing.Tracers.HttpActionSelectorTracer.<>c__DisplayClass2.<System.Web.Http.Controllers.IHttpActionSelector.SelectAction>b__0()
at System.Web.Http.Tracing.ITraceWriterExtensions.TraceBeginEnd(ITraceWriter traceWriter, HttpRequestMessage request, String category, TraceLevel level, String operatorName, String operationName, Action`1 beginTrace, Action execute, Action`1 endTrace, Action`1 errorTrace)
at System.Web.Http.Tracing.Tracers.HttpActionSelectorTracer.System.Web.Http.Controllers.IHttpActionSelector.SelectAction(HttpControllerContext controllerContext)
at System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext controllerContext, CancellationToken cancellationToken)
at System.Web.Http.Tracing.Tracers.HttpControllerTracer.<ExecuteAsyncCore>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Tracing.ITraceWriterExtensions.<TraceBeginEndAsyncCore>d__18`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()
Wie man dort sehen kann überall keine Stellfläche von meinem Code ist. Es ist alles Systemcode und ich weiß nicht, wie ich das Problem beheben und beheben kann. Ich starte gerade meinen Anwendungspool neu und alles funktioniert gut, und nach einer Weile erscheint wieder dieser Fehler.
Wie soll ich diesen Fehler debuggen? Wie finde ich die Wurzel des Problems?
Für alle, die das für ein Modul halten! Dies ist ein einfacher Web-Api, wie Sie in diesem Bild sehen:
teilen Sie den Code und zeigen Sie die Zeile, die Ihnen die Ausnahme gibt –
Sehr geehrte @ un-glücklich, wenn ich wüsste, welcher Teil meines Codes dieses Problem verursacht, würde ich diese Frage natürlich nicht stellen. : D Das Problem ist, dass ich hier mein gesamtes Projekt nicht teilen kann. Ich habe keine Idee, was zu teilen. –
Ich arbeite auch mit DNN und ich weiß, es ist zu schwer, das Problem zu verfolgen, besonders wenn Sie in DNN neu sind, stellen Sie zuerst sicher, dass Sie 'debug =" false "' in 'web.config' setzen, wenn dieser Code ist Teil von 'dll', fügen Sie' .pdb' Datei (n) hinzu, dann überprüfen Sie die 'EventLogs' Tabelle. Bitte melde dich, ob du diesen Teil gemacht hast oder nicht. –