今日、Signalr 1.0.0alpha2 から 1.0.0 にアップグレードしましたApplication_Start
。
前:
UnityContainer = Bootstrapper.Initialize();
var unityDependencyResolver = new UnityDependencyResolver(UnityContainer);
DependencyResolver.SetResolver(unityDependencyResolver);
var signalRUnityDependencyResolver = new SignalRUnityDependencyResolver(UnityContainer);
RouteTable.Routes.MapHubs(signalRUnityDependencyResolver);
GlobalHost.DependencyResolver = signalRUnityDependencyResolver;
AreaRegistration.RegisterAllAreas();
今:
UnityContainer = Bootstrapper.Initialize();
var unityDependencyResolver = new UnityDependencyResolver(UnityContainer);
DependencyResolver.SetResolver(unityDependencyResolver);
var signalRUnityDependencyResolver = new SignalRUnityDependencyResolver(UnityContainer);
//RouteTable.Routes.MapHubs(signalRUnityDependencyResolver);
RouteTable.Routes.MapHubs();
GlobalHost.DependencyResolver = signalRUnityDependencyResolver;
AreaRegistration.RegisterAllAreas();
RouteTable.Routes.MapHubs();
最初に来るはずのドキュメントの状態は知っていますが、これによりすべてがその行にハングアップします。これは、実際にロードされたことがわかった唯一の方法です。
しかし、データベースを呼び出そうとすると、例外などは発生しませんが、Web サイトがフリーズします。デバッガーで一時停止すると、最初の EF5 クエリでフリーズします。ただし、例外はなく、すべてのプロパティは次のように示されます。
Cannot evaluate expression because a native frame is on top of the call stack.
すべてを削除すると、RouteTable.Routes.MapHubs();
再び動作します (Signalr を除く)。
時々、そこまで到達せず、ハングアップしAreaRegistration.RegisterAllAreas();
ます。
Signalr を更新するたびに、これが再び変更され、今では気が狂っています。
Unity+Signalr を機能させるために呼び出す正しい順序は何ですか?
編集: いくつかいじった後、次の行を無効にするとうまくいくようです:
var signalRUnityDependencyResolver = new SignalRUnityDependencyResolver(UnityContainer);
GlobalHost.DependencyResolver = signalRUnityDependencyResolver;