我有一个调用 WCF 服务的网站,我希望该服务以浏览器区域性运行。我正在 ASP.NET 兼容模式下使用该服务。到目前为止,这是有效的 - 可以使用全局化部分的文化和 uiCulture 设置 WCF 服务的文化。
我的问题是enableClientBasedCulture没有显示任何效果。这些是我的服务全局化设置:
<globalization enableClientBasedCulture="true" culture="auto" uiCulture="auto"/>
该服务会忽略这些设置并使用默认区域性。
我缺少什么吗?在这种情况下,enableClientBasedCulture 是传输区域性的错误方法吗?
最佳答案
对于 WCF 服务,我使用 WS-I18N similar to this one 的实现.
如果我正确理解了您的配置,您将:
- 客户端上的浏览器
- ...访问服务器上的 ASP.NET 应用程序
- ...调用同一或不同服务器上的 WCF 服务(可能在同一服务器应用程序中)
这将按如下方式工作:
浏览器请求 ASP.NET 页面。
ASP.NET 应用程序将其区域性设置为客户端区域性 (enableClientBasedCulture =true)
ASP.NET 应用程序在调用 WCF Web 服务时添加具有当前区域性的 WS-I18N SOAP header 。
WCF 服务解释 WS-I18N SOAP header ,并在处理请求时设置其区域性。
关于.net - 使用 ASP.NET 和全局化获取 WCF 服务中的浏览器文化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2206134/