Question

J'ai un fonctionnement de service WCF qui a besoin d'analyser des données. Il se trouve que les données (points, tailles) est converti différemment dans différents CultureInfo et de l'analyse syntaxique est répartie dans beaucoup de classes et méthodes. Étant donné que toutes les analyses sont faites sans passer tout CultureInfo le succès de l'analyse syntaxique dépend de la culture de threads.

Comme il n'y a pas de réglage programmatique de CultureInfo le service prend le cultureinfo courant de la machine en quelque sorte. Je ne sais pas où il obtient, puisque les modifications aux options régionales et linguistiques ne semble pas avoir d'effet sur le cultureinfo du service WCF. Agit également à la web.config (oui, le service est hébergé dans IIS) ne semble pas fonctionner non plus.

Suis-je vraiment parti avec une seule option? Réglage de la programmaticly CultureInfo? Je pourrais trouver tous les appels de conversion et passer dans un CultureInfo ou je pourrais le mettre sur le Thread.CurrentThread.CurrentCulture. Est-il aucun moyen que je peux régler la CultureInfo une fois pour toutes - ayant un effet sur toutes les méthodes WCF exposées

Était-ce utile?

La solution

La réponse sur l'utilisation de balise dans web.config ne fonctionne que si le mode de compatibilité Asp.net est activée. Vous devez également l'intérieur suivant:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

Sans mode de compatibilité Asp.Net, les modules HTTP ne sont pas utilisés et la balise est ignorée.

Autres conseils

Vous devriez vérifier ce blog ...

http : //blogs.msdn.com/drnick/archive/2008/02/26/using-call-context-initializers-for-culture.aspx

... qui montre comment définir un comportement pour le réglage de la culture.

CEPENDANT, web.config devrait être votre ami ici. Vous devriez être en mesure de mettre en place la culture « par défaut » que votre service fonctionne avec d'ici.

La mondialisation elemenent ...

http://msdn.microsoft.com/en-us/library /hy4kkhe0.aspx

... devrait vous permettre de définir la culture et UICulture ...

<globalization
    enableClientBasedCulture="true|false"
    requestEncoding="any valid encoding string"
    responseEncoding="any valid encoding string"
    fileEncoding="any valid encoding string"

    responseHeaderEncoding = "any valid encoding string" 
    resourceProviderFactoryType = string
    enableBestFitResponseEncoding = "true|false"

    culture="any valid culture string"
    uiCulture="any valid culture string"/>

Vous pouvez utiliser le fichier de configuration comme Martin mentionné ci-dessus, mais comme une bonne pratique, vous devriez certainement définir l'information de la culture si nécessaire à InvariantCulture pour répondre aux données des thats envoyées par dans des endroits différents. dates-à-dire, les chaînes, les nombres

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top