C# 带ArgumentOutofRange例外和系统的神秘主义者
我(从我的角度)面临着一种非常奇怪的情况。在生产机器上,我的应用程序由于未处理的异常而崩溃。以下是“应用程序”日志中有关异常的记录: System.ArgumentOutOfRangeExceptionC# 带ArgumentOutofRange例外和系统的神秘主义者,c#,.net,C#,.net,我(从我的角度)面临着一种非常奇怪的情况。在生产机器上,我的应用程序由于未处理的异常而崩溃。以下是“应用程序”日志中有关异常的记录: System.ArgumentOutOfRangeException 堆栈:在 LayerMake.UI.ApplicationBootstrapper`2[[System.\u Canon,mscorlib, 版本=4.0.0.0,区域性=中性, PublicKeyToken=b77a5c561934e089],[System.\u佳能,mscorlib, 版本
堆栈:在 LayerMake.UI.ApplicationBootstrapper`2[[System.\u Canon,mscorlib, 版本=4.0.0.0,区域性=中性, PublicKeyToken=b77a5c561934e089],[System.\u佳能,mscorlib, 版本=4.0.0.0,区域性=中性, PublicKeyToken=b77a5c561934e089]]。运行() 在 OCDERP.Client.Shell.Bootstrapper.Main() 我以前从未见过这种类型(
System.\uu Canon
,在我的代码中,类型定义是ApplicationBootstrapper
),因此,我尝试搜索一些信息,但没有太多解释,它是什么
那么,当您有堆栈跟踪时,调试异常就容易多了,不是吗?但是这里有
Run
方法,其中堆栈跟踪结束(这是一个具有类似Prism的MVVM框架的WPF应用程序):
public void Run()
{
Debug(Resources.AB_layercakhello);
logger.Debug(Resources.AB_启动);
尝试
{
logger.Debug(Resources.AB_CreatingApplicationCatalog);
使用(var catalog=CreateApplicationCatalog())
{
logger.Debug(Resources.AB_CreatingApplicationViewModel);
var viewModel=CreateApplicationViewModel(目录);
logger.Debug(Resources.AB_LoadingMainWindowsSettings);
var服务=视图模型
.零件容器
.GetExportedValue();
var settings=service.loadMainWindowsSettings();
配置Windows设置(设置);
logger.Debug(Resources.AB_CreatingApplication);
var application=新应用程序();
初始化应用程序资源(应用程序);
logger.Debug(Resources.AB_ShowingMainWindow);
视图模型
.零件容器
.GetExportedValue()
.显示主窗口(视图模型、设置);
logger.Debug(Resources.AB_正在运行);
application.Run();//启动应用程序消息循环
logger.Debug(Resources.AB_savingWindowsSettings);
service.saveMainWindowsSettings(设置);
}
}
捕获(例外e)
{
错误(e);
投掷;
}
logger.Debug(Resources.AB_Stopping);
}
我不知道,在这个方法中,ArgumentOutOfRange
可以在哪里被提出。
它可以在嵌套方法中的某个地方提出,但应该反映在堆栈跟踪中
我错过了什么
顺便说一句,不幸的是,我现在无法重现这个错误
public void Run()
{
logger.Debug(Resources.AB_LayerCakeHello);
logger.Debug(Resources.AB_Starting);
try
{
logger.Debug(Resources.AB_CreatingApplicationCatalog);
using (var catalog = CreateApplicationCatalog())
{
logger.Debug(Resources.AB_CreatingApplicationViewModel);
var viewModel = CreateApplicationViewModel(catalog);
logger.Debug(Resources.AB_LoadingMainWindowsSettings);
var service = viewModel
.PartsContainer
.GetExportedValue<IApplicationDataService<T>>();
var settings = service.LoadMainWindowSettings();
ConfigureWindowSettings(settings);
logger.Debug(Resources.AB_CreatingApplication);
var application = new Application();
InitializeApplicationResources(application);
logger.Debug(Resources.AB_ShowingMainWindow);
viewModel
.PartsContainer
.GetExportedValue<IPresentationService>()
.ShowInMainWindow(viewModel, settings);
logger.Debug(Resources.AB_Running);
application.Run(); // starting application message loop
logger.Debug(Resources.AB_SavingWindowSettings);
service.SaveMainWindowSettings(settings);
}
}
catch (Exception e)
{
logger.Error(e);
throw;
}
logger.Debug(Resources.AB_Stopping);
}