2010-02-05 1 views
2

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

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

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

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

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

+0

enableClientBasedCulture на основе заголовка Accept-Language (http://msdn.microsoft.com/en-us/library/system.web.configuration.globalizationsection.enableclientbasedculture.aspx). Что клиент отправляет для этого? –

+0

«Клиент» в этом сценарии является прокси-сервером WCF на веб-сайте. Я не знаю, как повлиять на его заголовок запроса. Может быть, есть настройка WCF на стороне клиента? –

ответ

4

Для служб WCF я использую реализацию WS-I18N similar to this one.

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

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

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

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

  • ASP.NET ставит своей областью применения культуры к культуре клиента (enableClientBasedCulture = истина)

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

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

+0

Ваше резюме моей конфигурации в основном правильное. Служба не находится на одном сервере, но я думаю, что это не имеет значения. Это очень интересно, но тяжело. Вы имеете в виду, что мне нужно реализовать передачу культуры в соответствии с связанной статьей, и нет встроенного механизма, который мне нужно активировать. Возможно, это путь, но я подожду, чтобы дать парню с волшебным атрибутом шанс ... –

+0

Правильно, нет ничего встроенного. Думаю, мы могли ожидать, что Microsoft добавит поддержку WS-I18N в Framework, если и когда это будет сделано из Рабочего проекта в Рекомендацию. Колеса медленно вращаются на W3C. – Joe