Asp.net mvc 坚持使用资源文件进行本地化
我对基于resx的本地化有一个非常奇怪的问题。Asp.net mvc 坚持使用资源文件进行本地化,asp.net-mvc,localization,embedded-resource,Asp.net Mvc,Localization,Embedded Resource,我对基于resx的本地化有一个非常奇怪的问题。 首先,让我解释一下,现在是如何为我完成的。 它是ASP.NETMVC项目。我有两个程序集:web和域。Web包含所有与MVC相关的内容,以及域类。此外,在域汇编中,我存储了大量用于本地化的静态资源(我正在使用3种不同的语言构建站点) 因此,我在这个域程序集中有本地化文件夹,其中有如下文件: CheckoutStrings.resx、CheckoutStrings.en-US.resx、CheckoutStrings.et-EE.resx等等 现在奇
首先,让我解释一下,现在是如何为我完成的。
它是ASP.NETMVC项目。我有两个程序集:web和域。Web包含所有与MVC相关的内容,以及域类。此外,在域汇编中,我存储了大量用于本地化的静态资源(我正在使用3种不同的语言构建站点) 因此,我在这个域程序集中有本地化文件夹,其中有如下文件:
CheckoutStrings.resx、CheckoutStrings.en-US.resx、CheckoutStrings.et-EE.resx等等 现在奇怪的是,在我的本地机器上,使用VS Developing Server和IIS 7.5,这一切都运行得非常好。但当我将解决方案上传到我的web服务器(即WindowsServer2008R2,也就是IIS7.5)时,我的本地化突然停止工作 我试着输出
Thread.CurrentThread.CurrentUICulture
在我看来,就在输出本地化字符串之前。它给了我选择的区域性,这是正确的,但字符串是作为回退值呈现的,而不是本地化值
我真的被困在这里了,希望任何人都知道发生了什么事……可能是本地化文件根本找不到,而您又回到了“默认语言”吗?您是否可能部署到服务器上的GAC中,但从dev计算机上带有子文件夹的/bin文件夹中运行它? 您是否尝试过使用fuslogvw.exe查看代码的来源 请注意,要查看附属程序集的负载,您必须执行一些注册表“hacks”-: 将绑定失败记录到卫星 程序集设置
HKLM\Software\Microsoft\Fusion\LogResourceBinds
注册表值设置为1(该值为
德沃德)
1.怎么会找不到呢?2.不,我没有部署到GAC3。以前从未听说过fuslogvw,谢谢你的提示!正如您所说,我已经将LogResourceBinds设置为1,之后fuslogvw显示了一些绑定日志,但没有特定于我的应用程序的内容。我的域汇编中的其他东西肯定能工作,所以我想不出任何理由不加载嵌入式资源。真正打动我的是,它在本地机器上工作,而在服务器上不工作。我发现,像往常一样,这是我的错误。我们使用svn/export部署站点,但svn并没有看到新生成的卫星程序集。所以IIS只加载了没有卫星的域dll。很高兴听到你发现了这个bug。