.NET 4.0-CultureNotFoundException

我已经将我的ASP.NET MVC 2项目迁移到VS 2010 + .NET 4.0。现在,当我启动应用程序时,我在IntelliTrace和“输出/ Gebug”窗口中看到很多“ CultureNotFoundException”:

mscorlib.dll中发生类型'System.Globalization.CultureNotFoundException'的第一次机会异常

我知道“第一次机会异常”的含义,但是当我尝试调试(将“ CultureNotFoundException”添加到Bebug / Exceptions [Thrown])中时为什么会这样。 抛出此详细异常文本:

发生System.Globalization.CultureNotFoundException 不支持Message = Culture。 参数名称:名称 设计器是无效的文化标识符。 来源= mscorlib ParamName =名称 InvalidCultureName =设计师 堆栈跟踪: 在System.Globalization.CultureInfo..ctor处(字符串名称,布尔值useUserOverride) InnerException:

我想知道为什么.NET试图创建名称为“ designer”的CultureInfo?

是不是虫子?

Feryt asked 2020-08-07T02:53:34Z
10个解决方案
48 votes

我对CultureName“ UserCache”有类似的问题。 为了解决这个问题,我从这里删除了所有文件夹:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
DaveShaw answered 2020-08-07T02:53:40Z
25 votes

对于其他有此问题的人,这通常是一个被忽略的异常。

转到“调试”菜单->“例外...”,并确保未选中“例外”列表中的所有内容。

Brian R. Bondy answered 2020-08-07T02:54:04Z
19 votes

实际上,这实际上是System.Web中设计的(至少直到.NET Framework v4.0为止),不一定是最好的方法,但是它可以工作。

您可以在此处找到更详细的描述,但这基本上是因为ASP.NET会检查每个文件夹以查看其是否包含附属程序集,否则会引发异常。

考虑到附属程序集存在于具有可预测名称的文件夹中,人们会想知道为什么他们决定这样做,而不是只检查与模式匹配的文件夹,特别是因为与简单的条件检查相比,处理异常的计算量很大。

Stefan Z Camilleri answered 2020-08-07T02:54:35Z
16 votes

我很想知道是否有我个人可以消除这种烦恼的原因。

异常是调用“ System.Web.UI.Util.IsCultureName(name)”的副作用

在我的MVC3应用程序中,它第一次被称为“ UserCache”目录,该目录与具有预期区域性名称“ en-US”等的多个目录位于同一目录中。.Net试图查找Satellite目录 为应用程序。

它被多次调用,甚至与作为区域性文件的文件有关,例如“ EditorLocalization.bg-BG.designer.cs”(实际上所有这些都在App_GlobalResources中)。 [这里的代码是获取App_GlobalResources中的所有文件,并查看文件是否以CultureName结尾,再次调用IsCultureName。

因此,您无能为力地避免这种情况...在生产中不会出现.cs类的情况下,也许不会发生。 当然,它肯定会大大降低启动速度!

无论如何,在我看来,这是一个总的错误,Microsoft在其中引发了一个异常“ IsCultureName()。

dcorbett answered 2020-08-07T02:55:19Z
4 votes

转到Visual Studio中的“调试”->“选项”,然后选中“仅我的代码”。

Chiel ten Brinke answered 2020-08-07T02:55:39Z
1 votes

我在“ CultureNotFoundException”中遇到了类似的问题。 为了解决这个问题,我不得不另外从这里删除所有文件夹:

%LocalAppData%\Local\Temp\Temporary ASP.NET Files

从这里删除还不够:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
ArthurAkhmerov answered 2020-08-07T02:56:03Z
0 votes

我认为是真正的设计师弄乱了事情。 尝试在您的解决方案中搜索“设计器”字符串,以查看是否有任何XML / HTML属性的值设置为此字符串。

Anton Gogolev answered 2020-08-07T02:56:23Z
0 votes

我收到此错误消息:

'ViewBag.XXXXX'引发了类型为'System.Globalization.CultureNotFoundException'动态{System.Globalization.CultureNotFoundException}的异常

内部消息说:

不支持区域性。\ r \ n参数名称:name \ r \ nneutral是无效的标识符区域性。

问题是在AssemblyInfo.cs文件中没有对程序集区域性的定义:

[assembly: AssemblyCulture("neutral")]

要解决此问题,只需将“ culture”参数留空,如下所示:

[assembly: AssemblyCulture("")]

那为我解决了问题。

NahuelGQ answered 2020-08-07T02:57:10Z
0 votes

我发现在Visual Studio 2017选项的``调试''部分中启用``启用我的代码''对我来说很有效。 这只是隐藏了那些异常,这些异常是框架正常运行的一部分。

kristianp answered 2020-08-07T02:57:30Z
-3 votes

看来问题出在VS 2010 Beta 2中。

Feryt answered 2020-08-07T02:57:50Z
translate from https://stackoverflow.com:/questions/2116821/net-4-0-culturenotfoundexception