![](/img/trans.png)
[英]An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll
[英]On starting my MVC3 application, getting “An unhandled exception of type 'System.StackOverflowException' occurred in mscorlib.dll”?
我無法捕捉到這里發生的事情。 我的global.asax文件沒有任何異國情調,但我現在無法在我的本地IIS Express服務器上啟動我的MVC3應用程序:
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Paginate",
"{controller}/Paginate/{itemsPerPage}/{pageNumber}/{searchPhrase}", //URL with parameters
new { controller = "Home", action = "Paginate", itemsPerPage = Configuration.DefaultPageSize, pageNumber = 1, searchPhrase = UrlParameter.Optional },
new { itemsPerPage = @"\d+", pageNumber = @"\d+" }
);
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);
}
}
RegisterGlobalFilters(GlobalFilters.Filters);
捕獲異常RegisterGlobalFilters(GlobalFilters.Filters);
但如果我發表評論,它將發生在AreaRegistration.RegisterAllAreas();
。 如果我同時發表評論,它會發生在RegisterRoutes(RouteTable.Routes);
。 我怎么解決這個問題呢? 我不能放入一個會抓住的斷點!
更新:這是我正在捕獲的調用堆棧:
這是因為啟用了所有三個:
mscorlib.dll!System.Reflection.RuntimeModule.GetTypes() + 0x5 bytes
mscorlib.dll!System.Reflection.Assembly.GetTypes() + 0x4f bytes
System.Web.Mvc.dll!System.Web.Mvc.TypeCacheUtil.FilterTypesInAssemblies(System.Web.Mvc.IBuildManager buildManager, System.Predicate<System.Type> predicate) + 0xa5 bytes
System.Web.Mvc.dll!System.Web.Mvc.TypeCacheUtil.GetFilteredTypesFromAssemblies(string cacheName = "MVC-AreaRegistrationTypeCache.xml", System.Predicate<System.Type> predicate, System.Web.Mvc.IBuildManager buildManager = {System.Web.Mvc.BuildManagerWrapper}) + 0x40 bytes
System.Web.Mvc.dll!System.Web.Mvc.AreaRegistration.RegisterAllAreas(System.Web.Routing.RouteCollection routes = Count = Cannot evaluate expression because the current thread is in a stack overflow state., System.Web.Mvc.IBuildManager buildManager, object state = null) + 0x57 bytes
System.Web.Mvc.dll!System.Web.Mvc.AreaRegistration.RegisterAllAreas(object state) + 0x2e bytes
System.Web.Mvc.dll!System.Web.Mvc.AreaRegistration.RegisterAllAreas() + 0x7 bytes
>GHM.DFP.AdminUI.DLL!GHM.DFP.AdminUI.MvcApplication.Application_Start() Line 36 C#
[Native to Managed Transition]
System.Web.dll!System.Web.HttpApplication.InvokeMethodWithAssert(System.Reflection.MethodInfo method, int paramCount, object eventSource, System.EventArgs eventArgs) + 0x3c bytes
System.Web.dll!System.Web.HttpApplication.ProcessSpecialRequest(System.Web.HttpContext context = {System.Web.HttpContext}, System.Reflection.MethodInfo method, int paramCount, object eventSource, System.EventArgs eventArgs, System.Web.SessionState.HttpSessionState session) + 0xef bytes
System.Web.dll!System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(System.Web.HttpContext context = {System.Web.HttpContext}, System.Web.HttpApplication app) + 0x13e bytes
System.Web.dll!System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(System.IntPtr appContext = 723127104, System.Web.HttpContext context = {System.Web.HttpContext}, System.Reflection.MethodInfo[] handlers) + 0x84 bytes
System.Web.dll!System.Web.HttpApplication.InitSpecial(System.Web.HttpApplicationState state, System.Reflection.MethodInfo[] handlers, System.IntPtr appContext = 723127104, System.Web.HttpContext context) + 0xc3 bytes
System.Web.dll!System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(System.IntPtr appContext, System.Web.HttpContext context) + 0x154 bytes
System.Web.dll!System.Web.Hosting.PipelineRuntime.InitializeApplication(System.IntPtr appContext = 723127104) + 0xfe bytes
[Appdomain Transition]
[Native to Managed Transition]
webengine4.dll!RegisterModule() + 0x3740 bytes
[Frames below may be incorrect and/or missing, no symbols loaded for webengine4.dll]
webengine4.dll!RegisterModule() + 0x47e bytes
iiscore.dll!01d328cd()
iiscore.dll!01d1a777()
iiscore.dll!01d33247()
iiscore.dll!01d334c2()
iiscore.dll!01d25d67()
iiscore.dll!01d26196()
iiscore.dll!01d2686c()
iiscore.dll!01d26d04()
w3dt.dll!HTTP_WRAPPER::QueryState() + 0x17fc bytes
w3dt.dll!HTTP_WRAPPER::QueryState() + 0x23 bytes
w3tp.dll!THREAD_POOL::PostCompletion() + 0xd6 bytes
w3tp.dll!THREAD_POOL::TerminateThreadPool() + 0xa5 bytes
w3tp.dll!0f311f55()
kernel32.dll!BaseThreadInitThunk() + 0x12 bytes
ntdll.dll!RtlInitializeExceptionChain() + 0xef bytes
ntdll.dll!RtlInitializeExceptionChain() + 0xc2 bytes
我禁用了AreaRegistration.RegisterAllAreas()
,這就是我得到的:
mscorlib.dll!System.Reflection.RuntimeModule.GetTypes() + 0x5 bytes
mscorlib.dll!System.Reflection.Assembly.GetTypes() + 0x4f bytes
System.Web.Mvc.dll!System.Web.Mvc.TypeCacheUtil.FilterTypesInAssemblies(System.Web.Mvc.IBuildManager buildManager, System.Predicate<System.Type> predicate) + 0xa5 bytes
System.Web.Mvc.dll!System.Web.Mvc.TypeCacheUtil.GetFilteredTypesFromAssemblies(string cacheName = "MVC-ControllerTypeCache.xml", System.Predicate<System.Type> predicate, System.Web.Mvc.IBuildManager buildManager = {System.Web.Mvc.BuildManagerWrapper}) + 0x40 bytes
System.Web.Mvc.dll!System.Web.Mvc.ControllerTypeCache.EnsureInitialized(System.Web.Mvc.IBuildManager buildManager) + 0x80 bytes
System.Web.Mvc.dll!System.Web.Mvc.DefaultControllerFactory.GetControllerTypeWithinNamespaces(System.Web.Routing.RouteBase route = {System.Web.Routing.Route}, string controllerName = "Home", System.Collections.Generic.HashSet<string> namespaces = null) + 0x4d bytes
System.Web.Mvc.dll!System.Web.Mvc.DefaultControllerFactory.GetControllerType(System.Web.Routing.RequestContext requestContext, string controllerName) + 0x234 bytes
System.Web.Mvc.dll!System.Web.Mvc.DefaultControllerFactory.System.Web.Mvc.IControllerFactory.GetControllerSessionBehavior(System.Web.Routing.RequestContext requestContext = {System.Web.Routing.RequestContext}, string controllerName) + 0x3e bytes
System.Web.Mvc.dll!System.Web.Mvc.MvcRouteHandler.GetSessionStateBehavior(System.Web.Routing.RequestContext requestContext) + 0x7d bytes
System.Web.Mvc.dll!System.Web.Mvc.MvcRouteHandler.GetHttpHandler(System.Web.Routing.RequestContext requestContext = {System.Web.Routing.RequestContext}) + 0x2a bytes
System.Web.Mvc.dll!System.Web.Mvc.MvcRouteHandler.System.Web.Routing.IRouteHandler.GetHttpHandler(System.Web.Routing.RequestContext requestContext) + 0xb bytes
System.Web.dll!System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(System.Web.HttpContextBase context = {System.Web.HttpContextWrapper}) + 0x108 bytes
System.Web.dll!System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(object sender, System.EventArgs e) + 0x57 bytes
System.Web.dll!System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() + 0x95 bytes
System.Web.dll!System.Web.HttpApplication.ExecuteStep(System.Web.HttpApplication.IExecutionStep step = {System.Web.HttpApplication.SyncEventExecutionStep}, ref bool completedSynchronously = false) + 0x4c bytes
System.Web.dll!System.Web.HttpApplication.PipelineStepManager.ResumeSteps(System.Exception error) + 0x39f bytes
System.Web.dll!System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext context, System.AsyncCallback cb) + 0x5a bytes
System.Web.dll!System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest wr = {System.Web.Hosting.IIS7WorkerRequest}, System.Web.HttpContext context = {System.Web.HttpContext}) + 0xbe bytes
System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(System.IntPtr managedHttpContext, System.IntPtr nativeRequestContext = 730752100, System.IntPtr moduleData, int flags) + 0x247 bytes
System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(System.IntPtr managedHttpContext, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) + 0x29 bytes
webengine4.dll!RegisterModule() + 0x19b7 bytes
[Frames below may be incorrect and/or missing, no symbols loaded for webengine4.dll]
webengine4.dll!RegisterModule() + 0x25e8 bytes
webengine4.dll!MgdGetServerVariableA() + 0x2fd6 bytes
webengine4.dll!MgdGetServerVariableA() + 0x3485 bytes
iiscore.dll!005f086a()
iiscore.dll!005f1724()
iiscore.dll!005de053()
iiscore.dll!005e0779()
iiscore.dll!005e2cd6()
iisfreb.dll!RegisterModule() + 0x1870 bytes
iiscore.dll!005e0f63()
webengine4.dll!MgdReleaseNativeConfigSystem() + 0x9e bytes
webengine4.dll!MgdIndicateCompletion() + 0x24 bytes
[Managed to Native Transition]
System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(System.IntPtr managedHttpContext, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) + 0x2cc bytes
System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(System.IntPtr managedHttpContext, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) + 0x29 bytes
[Appdomain Transition]
webengine4.dll!RegisterModule() + 0x19b7 bytes
webengine4.dll!MgdGetServerVariableA() + 0x2cc0 bytes
kernel32.dll!BaseThreadInitThunk() + 0x12 bytes
ntdll.dll!RtlInitializeExceptionChain() + 0xef bytes
ntdll.dll!RtlInitializeExceptionChain() + 0xc2 bytes
注釋掉RegisterGlobalFilters(GlobalFilters.Filters)
讓我這樣:
mscorlib.dll!System.Reflection.RuntimeModule.GetTypes() + 0x5 bytes
mscorlib.dll!System.Reflection.Assembly.GetTypes() + 0x4f bytes
System.Web.Mvc.dll!System.Web.Mvc.TypeCacheUtil.FilterTypesInAssemblies(System.Web.Mvc.IBuildManager buildManager, System.Predicate<System.Type> predicate) + 0xa5 bytes
System.Web.Mvc.dll!System.Web.Mvc.TypeCacheUtil.GetFilteredTypesFromAssemblies(string cacheName = "MVC-ControllerTypeCache.xml", System.Predicate<System.Type> predicate, System.Web.Mvc.IBuildManager buildManager = {System.Web.Mvc.BuildManagerWrapper}) + 0x40 bytes
System.Web.Mvc.dll!System.Web.Mvc.ControllerTypeCache.EnsureInitialized(System.Web.Mvc.IBuildManager buildManager) + 0x80 bytes
System.Web.Mvc.dll!System.Web.Mvc.DefaultControllerFactory.GetControllerTypeWithinNamespaces(System.Web.Routing.RouteBase route = {System.Web.Routing.Route}, string controllerName = "Home", System.Collections.Generic.HashSet<string> namespaces = null) + 0x4d bytes
System.Web.Mvc.dll!System.Web.Mvc.DefaultControllerFactory.GetControllerType(System.Web.Routing.RequestContext requestContext, string controllerName) + 0x234 bytes
System.Web.Mvc.dll!System.Web.Mvc.DefaultControllerFactory.System.Web.Mvc.IControllerFactory.GetControllerSessionBehavior(System.Web.Routing.RequestContext requestContext = {System.Web.Routing.RequestContext}, string controllerName) + 0x3e bytes
System.Web.Mvc.dll!System.Web.Mvc.MvcRouteHandler.GetSessionStateBehavior(System.Web.Routing.RequestContext requestContext) + 0x7d bytes
System.Web.Mvc.dll!System.Web.Mvc.MvcRouteHandler.GetHttpHandler(System.Web.Routing.RequestContext requestContext = {System.Web.Routing.RequestContext}) + 0x2a bytes
System.Web.Mvc.dll!System.Web.Mvc.MvcRouteHandler.System.Web.Routing.IRouteHandler.GetHttpHandler(System.Web.Routing.RequestContext requestContext) + 0xb bytes
System.Web.dll!System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(System.Web.HttpContextBase context = {System.Web.HttpContextWrapper}) + 0x108 bytes
System.Web.dll!System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(object sender, System.EventArgs e) + 0x57 bytes
System.Web.dll!System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() + 0x95 bytes
System.Web.dll!System.Web.HttpApplication.ExecuteStep(System.Web.HttpApplication.IExecutionStep step = {System.Web.HttpApplication.SyncEventExecutionStep}, ref bool completedSynchronously = false) + 0x4c bytes
System.Web.dll!System.Web.HttpApplication.PipelineStepManager.ResumeSteps(System.Exception error) + 0x39f bytes
System.Web.dll!System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext context, System.AsyncCallback cb) + 0x5a bytes
System.Web.dll!System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest wr = {System.Web.Hosting.IIS7WorkerRequest}, System.Web.HttpContext context = {System.Web.HttpContext}) + 0xbe bytes
System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(System.IntPtr managedHttpContext, System.IntPtr nativeRequestContext = 730145292, System.IntPtr moduleData, int flags) + 0x247 bytes
System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(System.IntPtr managedHttpContext, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) + 0x29 bytes
webengine4.dll!RegisterModule() + 0x19b7 bytes
[Frames below may be incorrect and/or missing, no symbols loaded for webengine4.dll]
webengine4.dll!RegisterModule() + 0x25e8 bytes
webengine4.dll!MgdGetServerVariableA() + 0x2fd6 bytes
webengine4.dll!MgdGetServerVariableA() + 0x3485 bytes
iiscore.dll!0fcd086a()
iiscore.dll!0fcd1724()
iiscore.dll!0fcbe053()
iiscore.dll!0fcc0779()
iiscore.dll!0fcc2cd6()
iisfreb.dll!RegisterModule() + 0x1870 bytes
iiscore.dll!0fcc0f63()
webengine4.dll!MgdReleaseNativeConfigSystem() + 0x9e bytes
webengine4.dll!MgdIndicateCompletion() + 0x24 bytes
[Managed to Native Transition]
System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(System.IntPtr managedHttpContext, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) + 0x2cc bytes
System.Web.dll!System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(System.IntPtr managedHttpContext, System.IntPtr nativeRequestContext, System.IntPtr moduleData, int flags) + 0x29 bytes
[Appdomain Transition]
webengine4.dll!RegisterModule() + 0x19b7 bytes
webengine4.dll!MgdGetServerVariableA() + 0x2cc0 bytes
kernel32.dll!BaseThreadInitThunk() + 0x12 bytes
ntdll.dll!RtlInitializeExceptionChain() + 0xef bytes
ntdll.dll!RtlInitializeExceptionChain() + 0xc2 bytes
我曾經使用新的MVC 3應用程序模板獲得相同的錯誤。 所以,我為Visual Studio 2010重新安裝了MVC 3和MVC 3工具。它現在對我有用。
我為Visual Studio 2010安裝了Service Pack,可能安裝與異常有關
經過大約6個小時的挫折,我最終放棄了這一點。 我將所有代碼移植到一個新的MVC應用程序中,並且它有效。 去搞清楚。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.