問題タブ [lifetime-scoping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
620 参照

c# - シンプルインジェクター非同期ライフタイムスコープとセキュリティ例外

私は以下に示すようにAsyncCommandHandlerDecorator<TCommand>とを持っています:LifetimeScopedCommandHandlerDecorator<TCommand>

そして私はこのようなデコレータを登録します:

しかし、非同期プロセスが呼び出そうとすると、次のエラーが発生します。

セキュリティ透過メソッド「LifetimeScopedCommandHandlerDecorator`1.Handle(!0)」によるセキュリティクリティカルメソッド「SimpleInjector.SimpleInjectorLifetimeScopeExtensions.BeginLifetimeScope(SimpleInjector.Container)」へのアクセスに失敗しました。

との両方でSecurityCritical属性を使用しようとしましたが、役に立ちませんでした。何かアイデアはありますか?LifetimeScopedCommandHandlerDecorator.HandleAsyncCommandHandlerDecorator.Handle

アップデート:

例外はタイプMethodAccessExceptionであり、完全なスタックトレースは次のとおりです。

MYNAMESPACE.LifetimeScopedCommandHandlerDecorator`1.Handle(TCommandコマンド)で

MYNAMESPACE.AsyncCommandHandlerDecorator`1。<>c_DisplayClass1.b _0(Object _) で

System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state)で

System.Threading.ExecutionContext.RunInternal(ExecutionContext executeContext、ContextCallbackコールバック、オブジェクト状態、ブール値preserveSyncCtx)で

System.Threading.ExecutionContext.Run(ExecutionContext executeContext、ContextCallbackコールバック、オブジェクト状態、ブール値preserveSyncCtx)で

System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()で

System.Threading.ThreadPoolWorkQueue.Dispatch()で

System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()で

更新2:

属性の有無にかかわらずSecurityCritical、問題が存在します。

0 投票する
3 に答える
285 参照

c# - オートファクの難問

私は、選択した IoC コンテナーとして Autofac を使用しています。この質問の残りの部分は、SignalR と組み合わせて SignalR を参照しますが、答えるのに実際の SignalR の知識は必要ありません。これは、Autofac に根ざした問題です。

Autofac を SignalR の依存関係リゾルバーとして使用する一環として、自分の好きなように構成された独自の IJsonSerializer インスタンスを提供したいと考えています。ただし、その IJsonSerializer インスタンスを残りのソフトウェア全体で共有したくはありません。

これを実現するために、登録を追加して新しいライフタイム スコープを作成し、そのスコープを依存関係リゾルバーに提供しました。これが私の問題が始まったときです。

私が気付いていなかったのは、これを行うことで、以前にルートコンテナーから取得されていた SignalR から要求されたインスタンスごとのライフタイムスコープの依存関係が、現在はライフタイムスコープから要求されているため、SignalR 全体で共有されていることです。これは良くない。たとえば、存続期間の短いデータベース セッションは、アプリケーションの存続期間中共有されるようになりました。

ライフタイム スコープごとのインスタンスの依存関係に、基本的に、SignalR に渡すライフタイム スコープを使用して依存関係を再利用してはならないふりをさせるにはどうすればよいですか? または、ライフタイムスコープを完全に作成しないようにするにはどうすればよいですか?

0 投票する
3 に答える
4167 参照

c# - 一致するライフタイムスコープごとのインスタンス、デフォルトでは?

Autofacで一致するライフタイムスコープの登録ごとにインスタンスを作成したいのですが、グローバルコンテナ(一致するライフタイムスコープがない場合)からインスタンスをリクエストする必要がある場合があります。一致するライフタイムスコープが存在しないシナリオでは、例外をスローするのではなく、トップレベルのインスタンスを提供したいと思います。

これは可能ですか?

0 投票する
1 に答える
700 参照

asp.net-web-api - Web API セルフ ホスト アプリとシンプル インジェクターでの LifetimeScoping エラー

これら ( ++++ ) のページを読みましたが、どうすればよいかわかりません。

私はこの単純なインターフェースと具象型を持っています:

私はこれを作成しますDependencyResolver

サーバーを次のように構成しました。

そして、これは私のコントローラーです:

ここで、アクション メソッドを呼び出すと、次のエラーが発生します。

スレッド間で LifetimeScope インスタンスを使用するのは安全ではありません。ライフタイム スコープが囲む完全な操作が同じスレッド内で実行されることを確認し、LifetimeScope インスタンスが作成されたときに同じスレッドで破棄されることを確認します。Dispose は ManagedThreadId 28 のスレッドで呼び出されましたが、ID 29 のスレッドで作成されました。

私はどこで間違っていますか?助けていただけますか?

0 投票する
1 に答える
6653 参照

c# - 登録で複数の Autofac 有効期間スコープを指定できますか?

InstancePerHttpRequest ライフタイム スコープを提供する MVC4 アドオンで Autofac IoC コンテナーを使用しています。ただし、私のプロジェクト内には、web、web-api、およびバックグラウンド ワーカー スレッドがあります。次の例では、InstancePerHttpRequest スコープは、Web 要求から発信されていない場合はあまり意味がないと想定しています。

次の例のようなことをして、コンテナに最も適切なライフタイム スコープを選択させることが可能かどうか疑問に思っています。

この場合、私が意図しているのは、リクエストが Web リクエストから発信された場合は InstancePerHttpRequest スコープを選択し、webApi リクエストから発信された場合は InstancePerApiRequest スコープを選択し、それがアプリケーション ワーカー スレッドによって使用される場合はInstancePerDependency スコープを使用しますか?

これまたは同様のことが可能であれば、アイデアはありますか?
ありがとう

0 投票する
1 に答える
1405 参照

wcf - SimpleInjector を使用した Wcf は、「WCF スコープはネストできません」をスローします

サービス層はコマンド側とクエリ側に分かれており、それぞれの側にハンドラーがあります。

次の構成が使用されます

および必要なマークアップ設定:

Factory="SimpleInjector.Integration.Wcf.SimpleInjectorServiceHostFactory, SimpleInjector.Integration.Wcf"

次の例外をスローします。

WCF スコープはネストできません。

エラーが発生すると思います

WcfOperationScopeManager実装の。

背景情報:

  • WinForm アプリケーション
  • QueryClient の実行はバックグラウンドワーカーで行われます
  • Simple Injector バージョン 2.2.3 を使用しています
  • コンテナを構築する Global.asax
  • IIS でホストされる
  • 各 .svc には、使用するマークアップが設定されていますSimpleInjectorFactory
  • wsHttpBinding証明書とカスタムUserNamePasswordValidator
  • 各エンドポイント構成には、必要なすべての値が 2147483647 に設定されています。

2 つのロード要求を連続して高速に実行すると、エラーが発生するため、最初の要求が完了せず、2 番目の要求が発生します。

0 投票する
1 に答える
738 参照

asp.net - asp.net WebフォームでのAutofacの有効期間の問題

asp.net webforms サイトのリクエスト全体で持続する autofac の有効期間に問題があります。

したがって、auto facに工場を登録しています:

もちろん、これは app_start で発生します。

次に、このファクトリのメソッドを呼び出す単純なユーザー コントロールがあります。

ページにこのコントロールの 2 つのインスタンスがあるため、DoSomething メソッドを 2 回呼び出し、ファクトリも 2 回解決する必要があります。

サイトを初めて実行すると、DoSomethingFactory のコンストラクターが起動され、その後 DoSomething メソッドが 2 回呼び出されます。2 番目の要求では、ファクトリを新たに作成することなく、DoSomething メソッドを 2 回呼び出すことになります。

登録時に InstancePerLifetimeScope を取り出すと、解決ごとにファクトリがインスタンス化されます。MVC サイトに関するこのトークで私が見たほとんどの回答。私はMVCサイトも持っており、同じ方法で使用しており、要求どおりに機能しているため、asp.net Webフォームについて質問する必要があります

明確にするために、リクエストごとにファクトリをインスタンス化したいと思います。どんな助けやアイデアも大歓迎です。

どうもありがとう

意思

0 投票する
1 に答える
555 参照

asp.net-mvc-4 - 散発的な LifetimeScope の問題

クロスポスト: https://orchard.codeplex.com/discussions/471475

ときどき、 「インスタンスを解決できず、この LifetimeScope は既に破棄されているため、ネストされたライフタイムを作成できません。」一部のコンテンツ アイテムを照会する場合。

これは、アイテムを構築する私の関数です:

これは、上記の関数を呼び出す関数の一部であり、エラーが表示されることがあります。

それは散発的に発生し、問題の原因を実際に見つけることができません。アドバイスや情報をいただければ幸いです。ありがとう!

0 投票する
1 に答える
54 参照

c++ - 静的リストの変数の有効期間

このコードは、関数内の静的リストに新しいオブジェクトを追加します。リストは参照によって関数に渡されます。

リスト内の新しいオブジェクトの有効期間は?

コードサンプル:

出力:

質問:

このコードはメモリ使用量に関して安全ですか?

「newStruct」の寿命とは何ですか? addStructToList() または Main() ?