首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure函数应用程序的项目级文化设置

Azure函数应用程序的项目级文化设置
EN

Stack Overflow用户
提问于 2020-07-01 19:33:24
回答 2查看 2.6K关注 0票数 2

有没有可能在Azure函数应用程序的项目级别上改变文化?

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

该应用程序使用的是消费计划或高级计划,而不是通过ASP.NET核心。

我的Startup.cs文件如下所示:

代码语言:javascript
复制
  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/

EN

回答 2

Stack Overflow用户

发布于 2020-09-11 07:49:30

当将运行在服务器上的遗留应用程序迁移到Azure时,您总是需要处理最初从机器获取的Timezone和区域性设置。对于Azure函数,可以在应用程序设置中设置时区:

代码语言:javascript
复制
WEBSITE_TIME_ZONE=Europe/London

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

对于文化来说,它更复杂。使用aspnet核心,可以在启动类中的配置中定义它。

代码语言:javascript
复制
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。

代码语言:javascript
复制
[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;
        }
    }
}
票数 5
EN

Stack Overflow用户

发布于 2020-07-03 06:20:20

Azure函数没有提供一个内置的方法来改变文化。

把这个放在你的函数应用程序的开头:

代码语言:javascript
复制
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

这解决了你的问题吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62684149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档