Получение культуры браузера в службе WCF с использованием ASP.NET и глобализация - PullRequest
2 голосов
/ 05 февраля 2010

У меня есть веб-сайт, вызывающий службу WCF, и я хочу, чтобы служба работала с культурой браузера Я использую сервис в режиме совместимости ASP.NET. Пока это работает - можно установить культуру службы WCF с помощью культуры и uiCulture раздела глобализации.

Моя проблема в том, что enableClientBasedCulture не дает никакого эффекта. Это мои настройки глобализации для сервиса:

<globalization enableClientBasedCulture="true" culture="auto" uiCulture="auto"/>

Служба игнорирует эти настройки и использует культуру по умолчанию.

Что-то мне не хватает? Является ли enableClientBasedCulture неправильным способом передачи культуры в этом сценарии?

1 Ответ

4 голосов
/ 06 февраля 2010

Для служб WCF я использую реализацию WS-I18N , аналогичную этой .

Если я правильно понял вашу конфигурацию, у вас есть:

  • браузер на клиенте
  • ... доступ к приложению ASP.NET на вашем сервере
  • ... которая вызывает службу WCF на том же или другом сервере (может быть, в том же серверном приложении)

Это будет работать следующим образом:

  • Браузер запрашивает страницу ASP.NET.

  • Приложение ASP.NET устанавливает свою культуру в соответствии с культурой клиента (enableClientBasedCulture = true)

  • Приложение ASP.NET добавляет SOAP-заголовок WS-I18N с текущей культурой при вызове веб-службы WCF.

  • Служба WCF интерпретирует заголовок SOAP WS-I18N и устанавливает свою культуру при обработке запроса.

...