Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# VS 2010错误“;要添加的值超出范围。参数名称:value";_C#_Visual Studio 2010 - Fatal编程技术网

C# VS 2010错误“;要添加的值超出范围。参数名称:value";

C# VS 2010错误“;要添加的值超出范围。参数名称:value";,c#,visual-studio-2010,C#,Visual Studio 2010,我面临一个奇怪的问题。我的web应用程序抛出错误“要添加的值超出范围参数名称:值”。现在,这不是每次我运行程序时都会发生的。有时会显示错误,有时运行时不会出现问题(没有做任何更改)。错误下面给出的堆栈跟踪不清楚(至少对我来说)。有人面临过这样的问题吗 错误详细信息 要添加的值超出范围。 参数名称:value 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源 Exception Details: System.ArgumentOutOfRa

我面临一个奇怪的问题。我的web应用程序抛出错误“要添加的值超出范围参数名称:值”。现在,这不是每次我运行程序时都会发生的。有时会显示错误,有时运行时不会出现问题(没有做任何更改)。错误下面给出的堆栈跟踪不清楚(至少对我来说)。有人面临过这样的问题吗

错误详细信息 要添加的值超出范围。 参数名称:value 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源

Exception Details: System.ArgumentOutOfRangeException: Value to add was out of range.
Parameter name: value

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.  

Stack Trace: 


[ArgumentOutOfRangeException: Value to add was out of range.
Parameter name: value]
   System.DateTime.Add(Double value, Int32 scale) +9388319
   System.Web.Compilation.CodeDirectoryCompiler.GetCodeDirectoryAssembly(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories, Boolean isDirectoryAllowed) +8837703
   System.Web.Compilation.BuildManager.CompileCodeDirectory(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories) +125
   System.Web.Compilation.BuildManager.CompileCodeDirectories() +319
   System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +248

[HttpException (0x80004005): Value to add was out of range.
Parameter name: value]
   System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +62
   System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +421
   System.Web.Compilation.BuildManager.CallAppInitializeMethod() +31
   System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +605

[HttpException (0x80004005): Value to add was out of range.
Parameter name: value]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9013676
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +97
   System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +258




--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.1 

如果您尝试分配的值为
null
,则可能发生这种情况。尝试合并该值

假设:

int i = value ?? 0; //if value is null, zero is assigned to i
MyClass _class = ValueClass ?? new MyClass(); //same as above, except it instantiates.
DateTime someDate = getChuckNorrisBirthDate() ?? DateTime.Now.Date(); // beware of chuck norris

我在
DateTime
变量中看到了这个错误。。但那是很久以前的事了。由于您没有提供足够的变量类型等信息(而且图像太小,无法识别任何内容),我只是在猜测。

只是猜测:由于异常似乎是从您无法控制的代码中抛出的,因此导致错误的不是您的代码。但是,这可能是您的系统设置。例如,出于某种奇怪的原因,
System.DateTime.Add(Double value,Int32 scale)
被调用时使用了如下参数:

结果DateTime小于MinValue或大于MaxValue

你的计算机上的时间现在是否有可能被设置为难以置信的高值?例如,接近于1999年12月31日23:59:59.999999。或者可能是低值,接近0001年1月1日的
00:00:00.0000000
。因此,出于某些原因,编译器会选择当前日期,并需要向其添加一些时间跨度,这会导致错误

只是胡乱猜测,但也许

更新

可以找到
System.Web.Compilation.CodeDirectoryCompiler.GetCodeDirectoryAssembly
方法的代码。代码中有一行

DateTime waitLimit = DateTime.UtcNow.AddMilliseconds(3000); 

这是唯一可以抛出此类异常的地方(如果我正在查看的版本与您的环境相同)。因此,它会为您计算机上设置的奇怪时间提供更多投票。

问题已解决。刚刚将“控制面板”中的“区域设置”、“日期/时间设置”更改为一些随机设置,然后将其还原为原始设置,然后重新启动电脑,错误消失。问题可能是@Michael Sagalovich提到的GetCodeDirectorySassembly代码。如果再次出现错误,将调查更多详细信息:)


谢谢大家

你能复制粘贴帖子中的错误文本吗?它在
DateTime.Add()行崩溃。
你在代码中的什么地方使用它?张贴too@Michael萨加洛维奇:我想截图会更详细。总之,请看下面的详细信息:@giddy:我没有在代码中的任何地方使用该语句。甚至在解决方案中进行了快速搜索,但没有这样的行。我尝试在另一台电脑上运行该项目,但效果很好。@Michael Sagalovich:用错误文本编辑了原始帖子。确实,错误可能是由我的系统设置引发的,但我检查了日期时间设置,一切似乎都很好。您认为原因可能是安装损坏吗?代码在我的其他配置(Vista 32位VS professional 2010)上运行良好,但在Win 7 32位VS professional 2010上,它失败了。我应该从编写一个小的控制台应用程序开始,它的功能完全相同:
DateTime waitLimit=DateTime.UtcNow.addmillimits(3000)
Main
中的某个地方看看会发生什么,例如,什么是
DateTime.UtcNow
。这可能会给你一个线索。谢谢你的建议。现在问题已经解决了。将尝试调查是否再次发生。:)