2010-02-05 57 views
2

我有一個網站調用WCF服務,我希望服務能夠與瀏覽器文化一起運行。我在ASP.NET兼容模式下使用該服務。這是迄今爲止的工作 - 可以使用全球化部分的文化和uiCulture來設置WCF服務的文化。使用ASP.NET和全球化在WCF服務中獲取瀏覽器文化

我的問題是,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)。客戶發送了什麼? – 2010-02-05 09:42:46

+0

這種情況下的「客戶端」是網站的WCF代理。我不知道如何影響它的請求標題。也許有這樣的客戶端WCF配置? – 2010-02-05 11:44:57

回答

4

對於WCF服務,我使用WS-I18N similar to this one的實現。

如果我理解正確的配置,您有:

  • 客戶
  • 中的瀏覽器...您的服務器
  • ...其中呼籲訪問ASP.NET應用程序在同一個WCF服務或不同服務器(可能在同一個服務器應用程序)

這將工作如下:

  • 瀏覽器請求一個ASP.NET頁面。

  • ASP.NET參加辦法其文化設置到客戶端培養物(enableClientBasedCulture =真)調用WCF Web服務時

  • ASP.NET應用增加了一個WS-I18N SOAP頭與當前培養。

  • WCF服務解釋WS-I18N SOAP頭,並在處理請求時設置其文化。

+0

我的配置摘要主要是正確的。該服務不在同一臺服務器上,但我認爲這並不重要。 這很有趣,但很難的東西。你的意思是我必須根據鏈接的文章實施文化轉移,而且我不需要激活任何內置機制。也許這是要走的路,但我會等待一段時間,讓魔術屬性的人有機會...... – 2010-02-06 15:51:23

+0

沒錯,沒有內置任何東西。我想我們可以期望微軟能夠在框架從工作草案推薦到推薦的時候,爲框架添加WS-I18N支持。 W3C的輪子慢慢轉動。 – Joe 2010-02-06 16:56:29