Pin*_*ong 3 azure azure-functions
是否可以在 Azure Functions App 上更改项目级别的文化?
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)
{
}
}
Run Code Online (Sandbox Code Playgroud)
基于不同的 ASP.NET Core 是否可以Startup.cs
使用消费计划或高级计划?
Asp.net Core 必须使用如下所示的应用服务计划: https://andrewlock.net/adding-localization-to-an-asp-net-core-application/
将服务器上运行的旧应用程序迁移到 Azure 时,您始终需要注意最初从计算机获取的时区和文化设置。对于 Azure Functions,您可以在应用程序设置中设置时区:
WEBSITE_TIME_ZONE=Europe/London
Run Code Online (Sandbox Code Playgroud)
此处可以找到可能的值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,
}
});
}
Run Code Online (Sandbox Code Playgroud)
这在 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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4074 次 |
最近记录: |