3

MVC 3.0WindowsAzureアプリケーションでSignalRを使用しています。ArgumentNullException次の行は、 WindowsAzureエミュレーターでのみスローします。クラウドアプリケーションの代わりにMVC3.0アプリケーションを実行しても、スローされません。(私はまだデプロイされたクラウドでこのコードを実行しようとしませんでした)。

public static void RegisterRoutes(RouteCollection routes)
{
    RouteTable.Routes.MapHubs();
    // ...
}

メッセージの横にエラーに関する追加情報はありませんValue cannot be null. Parameter name: instanceName。インスタンス名がわかりません。

何が悪いのかわかりません。なぜそれが起こるのでしょうか?

編集

これは完全な例外情報です:

System.ArgumentNullExceptionが処理されませんでしたHResult=-2147467261
Message=Valueをnullにすることはできません。パラメータ名:instanceName
Source = Microsoft.AspNet.SignalR.Core ParamName = instanceName
StackTrace:at Microsoft.AspNet.SignalR.Hosting.HostDependencyResolverExtensions.InitializeHost(IDependencyResolver resolver、String instanceName、CancellationToken hostShutdownToken)at Owin.OwinExtensions.UseType [T]( IAppBuilderビルダー、Object [] args)、Owin.OwinExtensions.MapHubs(IAppBuilderビルダー、文字列パス、HubConfiguration構成)、System.Web.Routing.SignalRRouteExtensions。<> c_ DisplayClass7.b _5(IAppBuilderマップ)、Microsoft.Owin.Host .SystemWeb.OwinAppContext.Initialize(Action1 startup) at Microsoft.Owin.Host.SystemWeb.OwinBuilder.Build(Action1起動)System.Web.Routing.RouteCollectionExtensions.MapOwinPath(RouteCollectionルート、文字列名、文字列pathBase、Action`1起動)at System.Web.Routing.SignalRRouteExtensions.MapHubs(RouteCollectionルート、文字列名、文字列パス、HubConfiguration構成)at System.Web.Routing.SignalRRouteExtensions.MapHubs(RouteCollection ルート、文字列パス、HubConfiguration構成)at System.Web.Routing.SignalRRouteExtensions.MapHubs(RouteCollectionルート、HubConfiguration構成)at System.Web.Routing.SignalRRouteExtensions.MapHubs(RouteCollectionルート)Cerebello.MvcApplication.RegisterRoutes(RouteCollectionルート)のc:\ Projetos \ Cerebello \ Cerebello \ CerebelloWebRole \ Global.asax.cs:line25のCerebelloWebRole.Code.Helpers.RouteHelper。C:\ Projetos \ Cerebello \ Cerebello \ Cerebello \ WebRole.cs:lineのCerebelloWebRole.WebRole.Run()のc:\ Projetos \ Cerebello \ Cerebello \ CerebelloWebRole \ Code \ Helpers \ RouteHelper.cs:line 82のRegisterAllRoutes() 23 at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.StartRoleInternal()at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.StartRole()at Microsoft.WindowsAzure.ServiceRuntime.Implementation.Loader.RoleRuntimeBridge.b__2()at System.Threading.ExecutionContext.RunInternal( System.Threading.ExecutionContext.Run(ExecutionContextexecutionContext、ContextCallbackコールバック、オブジェクト状態、ブールpreserveSyncCtx)でのExecutionContextexecutionContext、ContextCallbackコールバック、オブジェクト状態、ブールpreserveSyncCtx)。System.Threading.ThreadHelper.ThreadStart()でRun(ExecutionContextexecutionContext、ContextCallbackコールバック、オブジェクト状態)InnerException:

4

2 に答える 2

3

残念ながら、これは既知の問題です:https ://github.com/SignalR/SignalR/issues/1616

この問題についてお気軽にコメントしてください。このバグはWindowsAzureエミュレーターで発生することを知っておくと便利です。この問題が展開中に発生した場合は、それも間違いなく注目に値します。

于 2013-03-24T09:43:05.180 に答える
2

MapHubs()IISプロセスの外部で呼び出されていたようで、現在は許可されていません。ルートを登録するメソッドがあり、IISの内外で実行されるコード間で共有されている場合は、IIS内MapHubs()からのみ呼び出されることを確認する必要があります。

于 2013-05-16T15:37:26.297 に答える