Environnement local:
Win10 x64
VS 2015 Mise à jour Pro 3
IIS 10.0 expressLa mondialisation utilise incorrectement la culture par défaut dans tous les scénarios après le déploiement
Environnement Production:
Win Server 2012 R2
IIS 8.5
Je suis en train de développer une application ASP.NET 4.6.1 MVC qui doit être prise en charge en anglais, danois et néerlandais. Je mets en œuvre les cultures neutres comme étant uniquement intéressé par la langue et non par les spécificités. J'utilise des assemblys satellites (comme certains les appelleraient) ou plutôt des fichiers Resource.resx pour mes traductions. Première approche j'ai suivi this often referenced post et cela fonctionne parfaitement localement. Dès que je le déploie dans l'environnement de production, les traductions cessent de fonctionner. Je définis les threads en fonction des valeurs de base de données: Et j'ai vérifié que cette méthode est toujours correctement exécutée dans l'environnement de production. J'ai essayé de régler les threads comme dans le post référencé qui fonctionne aussi bien localement, mais pas en production. Et j'ai même essayé de le mettre directement en haut de mon point de vue en utilisant le rasoir en vain. Ce qui me semble vraiment étrange, c'est que je l'ai fait travailler une fois dans l'environnement de production après avoir joué du violon, mais je suis presque sûr que je n'ai rien fait et tout à coup ça a marché. Malheureusement, il a cessé de fonctionner après avoir déployé une mise à jour de l'application, et je n'ai pas réussi à le faire fonctionner depuis. Je l'ai depuis essayé de jouer avec tous les paramètres dans l'environnement .NET sur IIS pour ce site et pour le répertoire racine:
Mais même spécification da-DK ou da que la culture ici ou directement dans le web .config de mon application ou codage en dur le fil à utiliser da comme la culture n'aide pas du tout. Ce qui est amusant, c'est que le formatage du nombre et de la date change correctement. Cela ne semble donc pas être un problème avec le thread n'ayant pas changé de culture, mais IIS refusant d'utiliser les autres fichiers de ressources. Lorsque déployé la structure de dossier a le dossier da dans bin et il contient un fichier nommé Resources.resources.resx qui je crois est correct. J'ai essayé d'avoir les fichiers de ressources situés dans une bibliothèque de classes comme le suggère l'article, mais aussi dans un dossier du même projet par frustration. Les fichiers de ressources sont définis sur l'accessibilité publique et sont compilés en tant que ressources intégrées sans copier les fichiers. Donc, ma question est, comment IIS refuse d'utiliser un autre fichier de ressources que le fichier par défaut? Et comment est-il possible que cela a fonctionné une fois? À ce stade, je ne considère que de prendre des traductions dans la base de données, car au moins cela fonctionne. Quelles suggestions avez-vous? Je crois que l'environnement .NET sur IIS a toutes les langues nécessaires installées car elles sont visibles dans les paramètres de globalisation .NET, mais je peux me tromper?
Mise à jour: J'ai essayé comme suggéré par NightOwl, encore une fois il fonctionne localement (débogage VS) et même si j'héberge les fichiers déployés dans iisexpress sur ma machine. Mais il échoue toujours sur l'environnement de production. La méthode proposée est similaire à this mais toujours sans succès. Je commence à penser que la solution consiste à passer à iis 10 dans l'environnement de production.
S'il vous plaît poster un code au lieu d'une capture d'écran – abatishchev