有没有可能在Azure函数应用程序的项目级别上改变文化?
https://learn.microsoft.com/en-us/azure/azure-functions/functions-app-settings
该应用程序使用的是消费计划或高级计划,而不是通过ASP.NET核心。
我的Startup.cs文件如下所示:
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
}
}ASP.NET核心是基于不同的Startup.cs ,而不是像上面那样的,可以使用消费计划还是高级计划?
必须使用应用程序服务计划的Asp.net核心,如下所示:https://andrewlock.net/adding-localisation-to-an-asp-net-core-application/
发布于 2020-09-11 07:49:30
当将运行在服务器上的遗留应用程序迁移到Azure时,您总是需要处理最初从机器获取的Timezone和区域性设置。对于Azure函数,可以在应用程序设置中设置时区:
WEBSITE_TIME_ZONE=Europe/London可能的值可以在这里找到https://en.wikipedia.org/wiki/List_of_tz_database_time_zones。对于那些似乎对Linux和WEBSITE_TIME_ZONE使用TZ的应用服务来说,这实际上是不同的。
对于文化来说,它更复杂。使用aspnet核心,可以在启动类中的配置中定义它。
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函数应用程序中是不可能的。您可以做的是创建一个安装类,然后为appdomain和当前线程设置区域性。这可能会起作用,因为long Azure不会改变Appdomain。
[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;
}
}
}发布于 2020-07-03 06:20:20
Azure函数没有提供一个内置的方法来改变文化。
把这个放在你的函数应用程序的开头:
using System.Threading;
using System.Globalization;
//......
string culture = "en-US";
CultureInfo CI = new CultureInfo(culture);
Thread.CurrentThread.CurrentUICulture = CI;以上代码将将区域性更改为en-US。您可以将其设置为其他值。
这是文件:
https://learn.microsoft.com/en-us/dotnet/api/system.threading.thread.currentculture?view=netcore-3.1
这解决了你的问题吗?
https://stackoverflow.com/questions/62684149
复制相似问题