【问题标题】:crazy asp.net error疯狂的 asp.net 错误
【发布时间】:2011-02-19 16:02:08
【问题描述】:

您好,我在调试网站上的问题时遇到问题。一切都在本地工作,本地和服务器数据库相同 该错误的奇怪之处在于它指向错误堆栈中我的本地开发机器。是疯了还是什么,文件已发布并托管在服务器计算机上,错误指向我本地开发盒上的一行代码。我觉得我正在失去剧情。有人可以帮忙清理一下这里的空气吗,因为这很奇怪

“/”应用程序中的错误。
指数超出范围。必须是非负数且小于集合的大小。
参数名称:索引
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.ArgumentOutOfRangeException:索引超出范围。必须是非负数且小于集合的大小。
参数名称:索引

源错误:

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

堆栈跟踪:

[ArgumentOutOfRangeException:索引超出范围。必须是非负数且小于集合的大小。
参数名称:索引]
   System.Collections.ArrayList.get_Item(Int32 索引)+10066148
   System.Collections.Specialized.NameObjectCollectionBase.BaseGet(Int32 索引)+17
   System.Web.HttpFileCollection.get_Item(Int32 index) +9
   System.Web.HttpFileCollectionWrapper.get_Item(Int32 索引)+18
   C:\Users\Bich Vu\Documents\Visual Studio 2008\Projects\PitchPortal\PitchPortal.Web\Binders\DocumentModelBinder.cs:73 中的 PitchPortal.Web.Binders.DocumentModelBinder.ValidateAndAssignPostedFile(ControllerContext controllerContext, ModelBindingContext bindingContext, Document doc)
   C:\Users\Bich Vu\Documents\Visual Studio 2008\Projects\PitchPortal\PitchPortal.Web\Binders\DocumentModelBinder.cs:45 中的 PitchPortal.Web.Binders.DocumentModelBinder.BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
   System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +404
   System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +140
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +658084
   System.Web.Mvc.Controller.ExecuteCore() +125
   System.Web.Mvc.c__DisplayClass8.b__4() +48
   System.Web.Mvc.Async.c__DisplayClass1.b__0() +21
   System.Web.Mvc.Async.c__DisplayClass8`1.b__7(IAsyncResult _) +15
   System.Web.Mvc.Async.WrappedAsyncResult`1.End() +85
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +51
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +454
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +263

【问题讨论】:

  • 如果你在本地机器上编译它,堆栈跟踪将显示源文件中的位置。该源代码甚至可能不在您的服务器上,您需要部署 DLL。
  • 没有源代码的堆栈跟踪不是很有指导意义,您可以发布您的代码。当您将调试代码部署到其他机器上时,您经常会在堆栈跟踪中获得类似的文件引用,我认为编译 dll 的机器上的源路径存储在符号文件中。

标签: asp.net-mvc


【解决方案1】:

关闭您的开发盒,然后重新运行该应用程序。有什么东西在你没有意识到的情况下击中了你的开发箱。

【讨论】:

    【解决方案2】:

    堆栈跟踪根据您编译它的开发机器引用文件路径。要为生产服务器删除这些工件,您应该在不包含完整调试信息的发布模式下编译。

    【讨论】:

      【解决方案3】:

      这个错误的奇怪之处在于 它指向我的本地开发人员 错误堆栈中的机器。就是它 疯了还是什么

      不,不是 :-) pdb(程序数据库文件)保存有关文件的信息。 http://msdn.microsoft.com/en-us/library/ms241903.aspx

      由于您在部署到服务器之前在本地编译它,因此 PDB 存储有关您的本地文件的信息。这并不意味着您的服务器正在与您的开发框对话。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-28
        • 2012-05-03
        • 1970-01-01
        • 2013-02-13
        • 1970-01-01
        • 2010-12-12
        • 1970-01-01
        • 2016-07-03
        相关资源
        最近更新 更多