Pregunta

Tengo un servicio de WCF en ejecución que necesita para analizar algunos datos. Resulta que los datos (puntos tamaños) se convierte de manera diferente en diferentes CultureInfo de y el análisis se extiende en una gran cantidad de clases y métodos. Dado que todo el análisis se realiza sin pasar ningún CultureInfo el éxito del análisis depende de la cultura hilos.

Dado que no existe un marco programático de CultureInfo el servicio recoge el CultureInfo actual de la máquina de alguna manera. No tengo idea de donde se pone esto, ya que no parece cambios en el Regional y de idioma para tener algún efecto sobre la CultureInfo del servicio WCF. También cambia el web.config (sí, el servicio está alojado en IIS) no parece funcionar bien.

Estoy realmente dejó con sólo una opción? Ajuste de la programmaticly CultureInfo? Que pude encontrar todas las llamadas de conversión y pasar en un CultureInfo o podría ponerlo en la Thread.CurrentThread.CurrentCulture. ¿No hay manera de que me puedo fijar el CultureInfo una vez por todas? - tener efecto sobre todos los métodos expuestos WCF

¿Fue útil?

Solución

La respuesta sobre el uso de la etiqueta en web.config sólo funciona si el modo de compatibilidad Asp.net está activado. También es necesario lo siguiente en el interior:

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

Sin modo de compatibilidad Asp.Net, los módulos HTTP no se utilizan y la etiqueta se ignora.

Otros consejos

Usted debe verificar esta entrada del blog ...

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

... que muestra cómo definir un comportamiento para el establecimiento de la cultura.

Sin embargo, web.config debe ser su amigo. Usted debe ser capaz de establecer la cultura "defecto" que su servicio funciona con desde aquí.

La globalización elemenent ...

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

... debería permitir establecer la cultura y 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"/>

Puede utilizar el archivo de configuración como Martin mencionó anteriormente, pero como buena práctica además se debería establecer la información de la cultura donde sea necesario InvariantCulture para atender a los datos eso se envían a través de diferentes lugares. es decir, las fechas, cadenas, números

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top