我在项目中间遇到此异常,当我按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
关于如何出现的任何想法。
答案 0 :(得分:1)
您(可能)在您的代码中的某处有一个递归调用,即
A班 构造函数(){ CallAMethod(); } CallAMethod() { A =新A(); } }
编辑:Pauli正确地指出递归通常会导致StackOverflowException(并且如果错误则纠正我)我已经看到了大约80,000次调用的递归上限,如果对象很大且系统内存受限(来自其他阅读我看到它是CLR堆大小而不是线性地址空间虽然我认为这也可以发挥作用,但会导致资源消耗。