ServiceModelEx の Service Bus 部分を使用しています。(および WCF サービスの自動開始に AppFabric を使用)。なんか変な挙動してる…
基本的に、サービス バスを初めて呼び出すと、すべての適切なイベントがチェーンを起動します (データベースを調べて、記録された値を確認することによって確認されます)。
しかし、その後の呼び出しでは何も起こりません。イベントが発生しないようです...
.svclogs には何の役にも立ちません。実際、後続のイベントも登録されていません。
ただし、Windows イベント ログには、バスにサブスクライブされているサービスごとに次のエラーが表示されます。
WebHost failed to process a request.
Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/777031
Exception: System.ServiceModel.ServiceActivationException: The service '/AcmeWidgets.WidgetFactory.Subscribers.WidgetBuilder/BuildService.svc' cannot be activated due to an exception during compilation. The exception message is: The type 'AcmeWidgets.WidgetFactory.Subscribers.WidgetBuilder.BuildService', provided as the Service attribute value in the ServiceHost directive, or provided in the configuration element system.serviceModel/serviceHostingEnvironment/serviceActivations could not be found.. ---> System.InvalidOperationException: The type 'AcmeWidgets.WidgetFactory.Subscribers.WidgetBuilder.BuildService', provided as the Service attribute value in the ServiceHost directive, or provided in the configuration element system.serviceModel/serviceHostingEnvironment/serviceActivations could not be found.
at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
--- End of inner exception stack trace ---
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath)
Process Name: w3wp
Process ID: 3052
初めて正しく実行されるため、サービス属性値が正しいことは明らかです。
何か案は???
編集 1: この奇妙な動作に追加するには、Visual Studio でソリューションを「再構築」すると、バスへの最初の呼び出しが機能し、チェーンのすべてのイベントが発生し、その後の呼び出しはすべて失敗します。