パイプラインのどの部分が失われますか?
リクエストパイプラインは実行されません:
myRequestService.Any(e.Request);
物理的にはAny
のみを呼び出しています MyRequestService
のC#メソッド クラス、それは他に何もしません(またはできません)。
サービスリクエスト中に他のサービスを呼び出すための推奨される方法は、サービスゲートウェイを使用することです。
ただし、HTTPリクエストの外部でサービスを呼び出す場合は、RPCゲートウェイを使用して、信頼できないサービスを実行できます。RPCゲートウェイは、完全なリクエストパイプラインを呼び出し、HTTPエラー応答を型付きエラー応答に変換します。
HostContext.AppHost.RpcGateway.ExecuteAsync()
サービスリクエストの外部で内部/信頼できるサービスを実行するには、メッセージリクエストリクエスト/レスポンスフィルター、サービスアクションフィルター、イベントを適用するServiceStackMQで使用されるHostContext.AppHost.ExecuteMessageを使用できます。
container.AddScoped
に登録しました
HTTPリクエストの外部でリクエストスコープの依存関係を使用しないでください。依存関係がThreadSafeの場合はシングルトンを使用し、そうでない場合はトランジェントとして登録してください。リクエストごとのストレージを渡す必要がある場合は、IRequest.Items
で渡します。 。