在使用ASP.NET MVC时,我注意到我的系统上安装的.NET框架发出的异常消息是德语。我真的更喜欢英文短信,所以我可以将它们贴在SO上。
我知道之前已经问过这个问题,但奇怪的是,建议的解决方法似乎都不适用于我的情况。我已经尝试了以下内容:
在抛出异常之前将线程区域设置设置为英语,如下所示:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(“en-US”); Thread.CurrentThread.CurrentUICulture = new CultureInfo(“en-US”);
//调用我错误的方法......
那么,如何让.NET框架发出英语异常消息呢?是否有任何方法可以在每个解决方案甚至整个系统的基础上实现这一目标?
编辑:在排除单元测试时抛出异常。我不确定这是否是设置线程文化无效的原因。
答案 0 :(得分:9)
正如我刚刚发现的那样,问题确实与拥有不同的测试项目有关。虽然我在实际项目中尝试将UI语言设置为英语,但我在测试项目中没有这样做,这就是为什么在查看测试结果时异常消息仍然是德语的原因。
在抛出异常之前在测试方法中设置UI语言对我来说是个窍门。
答案 1 :(得分:9)
卸载德语语言包:
开始 - 控制面板 - 程序和功能 - Microsoft .NET Framework(4客户端配置文件)语言包DEU - 卸载(Deinstallieren)
您可能需要为在那里找到的每个.NET Framework版本重复卸载。
答案 2 :(得分:7)
您是否尝试在en
中将UI文化设置为“web.config
”?更多信息here。
答案 3 :(得分:3)
显然,所有框架异常消息都绑定到已安装的操作系统语言。因此,除非您安装英文版的Windows .Net框架例外不会以英文显示。 尽管将CurrentUICulture设置为“en-US”似乎很奇怪,但我使用这种解决方法来在我的荷兰语Windows操作系统上发送英文消息。
答案 4 :(得分:2)
实际上并不存在一个很好的解决方案,投票选择Connect for this approach
答案 5 :(得分:2)
我在web.config中尝试了以下更改,它有所帮助:
<system.web>
<globalization uiCulture="en-US" culture="en-US" />
...
答案 6 :(得分:1)
您是否尝试在阅读异常文本之前立即切换文化?可能是在您访问消息时发生本地化 - 而不是在创建异常对象时。