C# AbpUserRequestCultureProvider返回了以下不受支持的区域性

C# AbpUserRequestCultureProvider返回了以下不受支持的区域性,c#,asp.net,culture,aspnetboilerplate,C#,Asp.net,Culture,Aspnetboilerplate,当我在Angular ASP.NET应用程序上检查日志时,我反复收到以下错误消息: WARN 2018-07-19 05:43:09596[42]calization.RequestLocalizationMiddleware-AbpUserRequestCultureProvider返回了以下不支持的区域性“null”。 WARN 2018-07-19 05:43:09596[42]calization.RequestLocalizationMiddleware-AbpUserRequestC

当我在Angular ASP.NET应用程序上检查日志时,我反复收到以下错误消息:

WARN 2018-07-19 05:43:09596[42]calization.RequestLocalizationMiddleware-AbpUserRequestCultureProvider返回了以下不支持的区域性“null”。
WARN 2018-07-19 05:43:09596[42]calization.RequestLocalizationMiddleware-AbpUserRequestCultureProvider返回了以下不受支持的UI区域性“null”。
WARN 2018-07-19 05:43:09596[42]calization.RequestLocalizationMiddleware-AbpLocalizationHeaderRequestCultureProvider返回了以下不受支持的区域性“null”

有没有人有过这样的经历,或者是什么导致了这个问题


任何帮助都将不胜感激。

这意味着ABP无法从请求的标题中获取用户的语言。 通常,它会检查标题
.AspNetCore.Culture
,如果未找到,则返回null。 检查您的请求标题

样本标题值如下

.AspNetCore.Culture=c=en|uic=en
  • c:文化
  • uic:Ui文化

我的头失败:
.AspNetCore.Culture

这一条适用于我的项目:标题:
Accept Language
value:“en-US”。

“null”
文化问题在2019年9月的ABP 4.9中得到了修复


另一个问题是

在本例中,
“.AspNetCore.Culture”

相关:用于
“Abp.TenantId”
标题(ABP4.42019年3月)

ABP6.0+
AbpLocalizationHeaderRequestCultureProvider.HeaderName
是可配置的

  • 在中,获取
    AbpLocalizationHeaderRequestCultureProvider
    并设置其
    HeaderName
  • //app.UseAbpRequestLocalization();
    app.UseAbpRequestLocalization(选项=>
    {
    var headerProvider=options.RequestCultureProviders.OfType,将
    '.AspNetCore.Culture'
    替换为
    'AspNetCore-Culture'
    : 低于ABP6.0
  • 将补丁以
    MyLocalizationHeaderRequestCultureProvider
    的形式复制到项目中
  • 在中,在设置其
    标题名称后,将
    MyLocalizationHeaderRequestCultureProvider
    的实例插入
    RequestCultureProviders
  • //app.UseAbpRequestLocalization();
    app.UseAbpRequestLocalization(选项=>
    {
    var headerProvider=新的MyLocalizationHeaderRequestCultureProvider();
    headerProvider.HeaderName=“AspNetCore文化”;
    options.RequestCultureProviders.Insert(2,headerProvider);
    });
    
  • 在中,将
    '.AspNetCore.Culture'
    替换为
    'AspNetCore-Culture'
  • 可供替代的
    您可以在Nginx中关闭。

    嗨,Akira,请参阅我的答案。
    // '.AspNetCore.Culture': `c=${cookieLangValue}|uic=${cookieLangValue}`,
        'AspNetCore-Culture': `c=${cookieLangValue}|uic=${cookieLangValue}`,