抛出了类型'System.OutOfMemoryException'的异常

时间:2011-06-19 20:49:15

标签: visual-studio visual-studio-2010

我在项目中间遇到此异常,当我按F5开始调试时。我使用的是Visual Studio 2011,项目是MCV3,EF4,我正在项目中使用Crystal报表。

以下是异常的痕迹:

  应用程序中的服务器错误。

     

类型异常   'System.OutOfMemoryException'是   抛出。

     

描述:未处理的异常   在执行期间发生   当前的网络请求。请查看   堆栈跟踪以获取更多信息   错误及其来源   代码。

     

异常详细信息:   System.OutOfMemoryException:异常   'System.OutOfMemoryException'类型   被扔了。

     

来源错误:

     

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

     

堆栈追踪:

     

[OutOfMemoryException:Exception of   输入'System.OutOfMemoryException'是   抛出。]
  System.Reflection.RuntimeAssembly._nLoad(的AssemblyName   fileName,String codeBase,Evidence   assemblySecurity,RuntimeAssembly   locationHint,StackCrawlMark&   stackMark,布尔   throwOnFileNotFound,布尔值   forIntrospection,布尔值   suppressSecurityChecks)+0
  System.Reflection.RuntimeAssembly.nLoad(的AssemblyName   fileName,String codeBase,Evidence   assemblySecurity,RuntimeAssembly   locationHint,StackCrawlMark&   stackMark,布尔   throwOnFileNotFound,布尔值   forIntrospection,布尔值   suppressSecurityChecks)+39
  System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(的AssemblyName   assemblyRef,证据   assemblySecurity,StackCrawlMark&   stackMark,布局forIntrospection,   布尔值suppressSecurityChecks)+132
  System.Reflection.RuntimeAssembly.InternalLoad(字符串   assemblyString,证据   assemblySecurity,StackCrawlMark&   stackMark,布局forIntrospection)   +144 System.Reflection.Assembly.Load(String   assemblyString)+28
  System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串   assemblyName,布尔starDirective)   46

     

[ConfigurationErrorsException:   类型异常   'System.OutOfMemoryException'是   抛出。]
  System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串   assemblyName,布尔starDirective)   +618 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()   +209 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo   ai)+130
  System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection   compConfig)+178
  System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies()   +94 System.Web.Compilation.BuildManager.CallPreStartInitMethods()   +332 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager   appManager,IApplicationHost appHost,   IConfigMapPathFactory   configMapPathFactory,   HostingEnvironmentParameters   hostingParameters,PolicyLevel   policyLevel,Exception   appDomainCreationException)+591

     

[HttpException(0x80004005):异常   'System.OutOfMemoryException'类型   被扔了。]
  System.Web.HttpRuntime.FirstRequestInit(HttpContext的   上下文)+8946484
  System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext的   上下文)+97
  System.Web.HttpRuntime.ProcessRequestInternal(的HttpWorkerRequest   wr)+258

关于如何出现的任何想法。

1 个答案:

答案 0 :(得分:1)

您(可能)在您的代码中的某处有一个递归调用,即

A班 构造函数(){  CallAMethod(); } CallAMethod() {   A =新A(); } }

编辑:Pauli正确地指出递归通常会导致StackOverflowException(并且如果错误则纠正我)我已经看到了大约80,000次调用的递归上限,如果对象很大且系统内存受限(来自其他阅读我看到它是CLR堆大小而不是线性地址空间虽然我认为这也可以发挥作用,但会导致资源消耗。