Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
Asp.net mvc 坚持使用资源文件进行本地化_Asp.net Mvc_Localization_Embedded Resource - Fatal编程技术网

Asp.net mvc 坚持使用资源文件进行本地化

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等等 现在奇

我对基于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。