MemoryCacheクラスはバグがあり、カルチャが英語以外だと内部で無限ループに入りハングアップする。
参考URL)https://github.com/SignalR/SignalR/issues/3414
MapSignalRメソッド内部のPerformanceCounterクラスの中あたりでもMemoryCacheが使われているのでSignalRもうまく動かなくなるときがあるかも。
最新の.NETでは直っているのかな?回避方法をメモ。
public static MemoryCache CreateMemoryCache()
{
CultureInfo ci = Thread.CurrentThread.CurrentCulture;
var lcid = CultureInfo.CurrentCulture.Parent.LCID;
if (lcid != 9)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(1033);
}
var myCache = new MemoryCache(MyCachePrefix, MyCacheConfig);
if (lcid != 9)
{
Thread.CurrentThread.CurrentCulture = ci;
}
return myCache;
}