gpt4 book ai didi

azure - Azure Functions 应用程序的项目级别文化设置

转载 作者:行者123 更新时间:2023-12-02 16:36:11 25 4
gpt4 key购买 nike

是否可以在 Azure Functions 应用程序上更改项目级别的文化?

https://learn.microsoft.com/en-us/azure/azure-functions/functions-app-settings

应用程序正在使用消费计划或高级计划,而不是通过 ASP.NET Core。

我的Startup.cs文件如下:

  public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
}
}

基于不同 Startup.cs 的 ASP.NET Core 是否可以像上面那样使用消费计划或高级计划?

Asp.net Core 必须使用如下所示的应用服务计划: https://andrewlock.net/adding-localisation-to-an-asp-net-core-application/

最佳答案

将服务器上运行的旧应用程序迁移到 Azure 时,您始终需要注意最初从计算机获取的时区和文化设置。对于 Azure Functions,您可以在应用程序设置中设置时区:

WEBSITE_TIME_ZONE=Europe/London

在这里找到可能的值https://en.wikipedia.org/wiki/List_of_tz_database_time_zones 。这对于似乎在 Linux 上使用 TZ 和在 Windows 上使用 WEBSITE_TIME_ZONE 的应用服务来说实际上是不同的。

对于文化来说,情况更为复杂。使用aspnet core,您可以在Startup类的Configure中定义它

public void Configure(IApplicationBuilder app, IWebHostEnvironment env, 
ILoggerFactory loggerFactory)
{
var cultureInfo = new CultureInfo("en-US");
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture(cultureInfo),
SupportedCultures = new List<CultureInfo>
{
cultureInfo,
},
SupportedUICultures = new List<CultureInfo>
{
cultureInfo,
}
});
}

这在 Azure Function Apps 中是不可能的。您可以做的是创建一个安装类,然后设置应用程序域和当前线程的区域性。只要 Azure 不更改应用程序域,这可能就会起作用。

[assembly: FunctionsStartup(typeof(Startup))]
namespace FunctionApp
{
public class Startup : IWebJobsStartup
{
public void Configure(IWebJobsBuilder app)
{
var cultureInfo = new CultureInfo("en-US");
CultureInfo.DefaultThreadCurrentCulture = cultureInfo;
CultureInfo.DefaultThreadCurrentUICulture = cultureInfo;
Thread.CurrentThread.CurrentCulture = cultureInfo;
Thread.CurrentThread.CurrentUICulture = cultureInfo;
}
}
}

关于azure - Azure Functions 应用程序的项目级别文化设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62684149/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com