我在使用Asp.Net 1.1內核編寫一個Web應用程序的一些奇怪的問題,使用完整的.NET框架v4.6.2。力區域與Asp.Net核心
我想迫使應用程序使用瑞典區域設置(SV-SE)。這在開發機器(當然是......)上工作得很好,但不在它應該運行的服務器上運行(運行Windows Server 2012r2)。
我已經試過如下:
1)把 「SiteLocale」: 「SV-SE」 在appsettings.json文件。
2)把以下在web.config
<configuration>
<system.web>
<globalization culture="sv-SE" uiCulture="sv-SE" />
</system.web>
...
</configuration
3)在初始化的Program.cs應用之前設置默認區域
System.Globalization.CultureInfo.DefaultThreadCurrentCulture = new System.Globalization.CultureInfo("sv-SE");
System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = new System.Globalization.CultureInfo("sv-SE");
4)添加RequestLocalization配置(.. )在Startup.cs中
var supportedCultures = new[]
{
new CultureInfo("sv-SE")
};
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("sv-SE"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});
5)在我的控制器構造函數設置當前線程文化
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("sv-SE");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("sv-SE");
6)在我的控制器操作設置當前線程的文化
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("sv-SE");
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("sv-SE");
7)安裝瑞典語言包的服務器端(server最初只有英文)
後做所有上述任何日期或數字輸出在視圖中仍然使用en-US語言環境呈現。
在視圖中我可以看到下面看當前區域:
System.Globalization.CultureInfo.CurrentCulture.Name => "sv-SE"
System.Globalization.CultureInfo.CurrentUICulture.Name => "sv-SE"
System.Globalization.CultureInfo.InstalledUICulture => "en-US"
同樣,我的開發機器上,這是工作確定,數字&日期根據瑞典的語言環境進行格式化。但在服務器上他們不是。
在應用程序在ApplicationPoolIdentity下運行的服務器。我假設我將配置爲使用「en-US」作爲語言環境,因爲操作系統最初僅安裝了英語語言。
困惑,爲什麼設置CurrentThread.CurrentCulture /的CurrentUICulture沒有任何影響。
剛剛嘗試過,但結果仍然一樣。我會假設在Controller的構造函數中設置這些屬性,或者Actions也會覆蓋這種情況。但謝謝你的建議。 – NeoDarque
@NeoDarque在創建'WebHostBuilder'並調用'Build()'之前配置了它嗎? –
是的,正確的。在創建WebHostBuilder之前嘗試設置CultureInfo.CurrentCulture,CultureInfo.CurrentUICulture,CultureInfo.DefaultThreadCurrentCulture&CultureInfo.DefaultThreadCurrentUICulture。 – NeoDarque