我在全球化方面遇到了一些问题。我继承了ASP.NET 2.0中一个非常老的项目。它有多个用于多种语言的全球化文件。
但是,当我构建用于部署的应用程序时,它在我们的测试环境中运行良好。但是,当我们将应用程序复制到生产环境时,它在<%$ Resources: Global,MyStringHere %>上出错。
声明在资源文件中找不到MyStringHere。
为什么这在开发和测试环境中运行得很好,但在生产中却不能运行呢?文件从一个环境到下一个环境是完全相同的(尽管inetpub文件位于每台机器上的不同目录中)。
有人有什么想法吗?
编辑:
很奇怪。如果我从后面的代码调用资源。
public string _MyStringName = Resources.Global.MyStringHere;这在所有环境中都很好。
但是,用旧的:
<%$Resources: Global, MyStringHere %>只在生产中出错。
发布于 2012-03-05 23:26:03
只是在黑暗中拍摄,但是您有基于环境或机器名称配置的密钥吗?我们在很多项目中都这样做。由于特定的原因,我们的一些项目只能在特定的环境中运行。另一种猜测是检查是否有# if (调试)可能跳过代码。
发布于 2012-03-05 23:58:46
您确定您的.resx文件从App_GlobalResources复制到部署站点了吗?App_GlobalResources文件通常应该与Build = Content一起使用,而不是Build = Embedded。
在您的开发机器上,一组嵌入式资源可以工作,因为文件仍然物理上位于App_GlobalResources中,并且是嵌入式的。嵌入的资源被忽略了。这会给您错误的印象,认为您的构建操作配置正确。
https://stackoverflow.com/questions/9575624
复制相似问题