2010-01-02 6 views
4

J'ai un problème très étrange avec la localisation basée sur resx. Dans un premier temps, laissez-moi vous expliquer comment cela se fait pour moi en ce moment.
C'est un projet ASP.NET MVC. J'ai deux assemblées: web et domaine. Web contient tous les trucs liés à MVC, et les domaines, bien, contans les classes de domaine. Aussi, dans l'assemblage de domaines, je stocke beaucoup de ressources statiques pour la localisation (je construis un site avec 3 langues différentes disponibles).Coincé avec la localisation en utilisant des fichiers de ressources

J'ai donc dossier de localisation dans cet ensemble de domaine et il y a des fichiers comme:
CheckoutStrings.resx, CheckoutStrings.en-US.resx, CheckoutStrings.et-EE.resx et ainsi de suite.

Maintenant, la chose étrange est que tout cela fonctionne très bien sur ma machine locale en utilisant à la fois VS Developing Server et IIS 7.5. Mais lorsque je télécharge une solution sur mon serveur Web, qui est Windows Server 2008 R2, il s'agit donc de IIS 7.5, ma localisation cesse soudainement de fonctionner.

J'ai essayé de sortie

Thread.CurrentThread.CurrentUICulture

dans mon point de vue, juste avant la sortie des chaînes localisées.
Il me donne la culture sélectionnée, ce qui est juste, mais néanmoins les chaînes sont rendues comme une valeur de repli, non localisée.

Je suis vraiment coincé ici, l'espoir quelqu'un a une idée de ce qui se passe ...

Répondre

3

pourrait-il que les fichiers de localisation sont tout simplement pas trouvé et vous êtes de retour à la baisse « langue par défaut »? Êtes-vous en train de déployer dans GAC sur le serveur mais en l'exécutant depuis un dossier/bin avec des sous-dossiers sur votre machine dev? Avez-vous essayé d'utiliser fuslogvw.exe pour voir d'où provient le code?

Sachez que pour voir les charges d'ensembles de satellites que vous avez à faire quelques registre « hacks » - http://msdn.microsoft.com/en-us/library/e74a18c4(VS.71).aspx:

Pour vous connecter les défaillances de grippage des ensembles satellite Définir la valeur de Registre HKLM\Software\Microsoft\Fusion\LogResourceBinds à 1 (la valeur est un DWORD).

+0

1. comment peut-il être qu'ils ne sont pas trouvés? 2. non, je ne déploie pas à gac 3. jamais entendu parler de fuslogvw avant, merci pour un conseil! – user231481

+0

J'ai défini LogResourceBinds à 1 comme vous l'avez dit, après que fuslogvw a montré des journaux de liaison, mais rien de spécifique à mon application. Et d'autres choses de mon assembly de domaine fonctionne vraiment, donc je ne peux pas penser à aucune raison pour que les ressources embarquées ne soient pas chargées. Ce qui me frappe vraiment, c'est que cela fonctionne sur la machine locale, et non sur le serveur. – user231481

+1

J'ai découvert, comme d'habitude c'était mon erreur. Nous utilisons svn/export pour déployer le site et svn n'a pas vu les assemblages satellites nouvellement créés. Donc IIS chargé seulement domaine DLL sans satellites. – user231481

Questions connexes