我在创建使用翻译的新文化时遇到问题。目前我遇到的问题是,Windows不允许应用访问这个文化所在的文件夹。在我们的本地机器中,我们可以将Visual Studio作为管理员,然后我们对此没有任何问题,但是因为我们使用Azure部署了应用程序,所以我不知道如何允许访问有问题的文件夹,因此我们得到以下异常: System.Globalization.CultureNotFoundException:文化不受支持。参数名称:name en-US-biz是一个无效的文化标识符。System.Globalization.CultureNotFoundException:文化不受支持。参数名称:name en-US-biz是一个无效的文化标识符
异常的代码时,我们更新了用户语言的下一个部分:
var currentUserLanguage = 'en-US-biz';
IocContainer.SetCurrentUserLanguage(currentUserLanguage);
var ci = domCultureLanguage != null ? domCultureLanguage.CultureInfo : new CultureInfo(currentUserLanguage);
Thread.CurrentThread.CurrentUICulture = ci;
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ci.Name);
在矿井线:新的CultureInfo(currentUserLanguage)是我得到的异常。
我们注册的文化在Global.asax文件:
private void LoadCultureManager()
{
BizCultureEn.Register();
BizCultureEs.Register();
}
,我们已经建立2个不同的文化课+的rsex相应的文件。
BizCultureEn类如:
public static class BizCultureEn
{
//"es-ES-custom" need to match with Translations.es-ES-custom.resx
public static string CustomCultureName = "en-US-biz";
public static CultureInfo CultureInfo { get; set; }
public static void Register()
{
// Create a custom culture for ru-US.
CultureAndRegionInfoBuilder builder = new CultureAndRegionInfoBuilder(CustomCultureName, CultureAndRegionModifiers.None);
CultureInfo = CultureInfo.CreateSpecificCulture(CustomCultureName);
builder.LoadDataFromCultureInfo(CultureInfo);
builder.CultureEnglishName = "Biz English (United States)";
builder.CultureNativeName = "Biz English (United States)";
builder.ThreeLetterISOLanguageName = "ben";
builder.ThreeLetterWindowsLanguageName = "ben";
builder.TwoLetterISOLanguageName = "bn";
builder.RegionEnglishName = "Biz English";
builder.ThreeLetterISORegionName = "USA";
builder.ThreeLetterWindowsRegionName = "USA";
builder.TwoLetterISORegionName = "US";
// Register the culture.
try
{
builder.Register();
}
catch (InvalidOperationException ex)
{
var ex1 = ex;
// Swallow the exception: the culture already is registered.
}
// Use the custom culture.
//CultureInfo = CultureInfo.CreateSpecificCulture(CustomCultureName);
Thread.CurrentThread.CurrentCulture = CultureInfo;
Thread.CurrentThread.CurrentUICulture = CultureInfo;
}
}
所以在localhost如果我在管理模式下执行visual studio我没有问题,我们不能从azure更改我们的应用程序,这不是一个选项现在.. – alecellis1985