3

今日、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;
4

0 に答える 0