問題タブ [nancy]
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.
c# - TinyIoc - すべてのインターフェイス登録を AsPerRequestSingleton に設定するにはどうすればよいですか?
上記は、私の TinyIoc 構成を含む既存のアプリケーションのスタートアップです。すべてのインターフェース登録を取り、それらをすべて PerRequestSingletons に変換する方法はありますか? リポジトリが多すぎるため、それらを「1つずつ」実行することはできません。また、NHibernateのセットアップ方法では機能しないため、それらをシングルトンのままにしておくこともできません。
.net - NancyFX: クエリ文字列パラメーターを含むルートは常に 404 NotFound を返します
シンプルな Nancy モジュールがあります。クエリ文字列 (qs) パラメーターをハンドラーに渡したいです。qs パラメータがない場合は、すべて問題ありません。パラメータを追加するとすぐに、404 ステータス コードが返されます。
ナンシーモジュール
単体テスト - 合格
単体テスト - 失敗
ありがとう
.net - NancyFX : JSON をデシリアライズする
ドキュメントは、NancyFx が json リクエスト本文の WRT デシリアライズに役立つことを示唆していますが、その方法はわかりません。以下のテストを参照してください。
.net - NancyFx : リクエスト本文の Json としての DateTime
これが一般的な json の問題なのか、Nancy に固有のものなのかはわかりません。リクエストの本文で日時をjsonとして渡したいです。同じアプローチを使用して、dto の失敗に使用します。DateTime はサーバー側で作成されますが、値セット クライアント側ではなく Datetime.Min です。
nancy - ナンシーのスーパーシンプルビューエンジンマスターページにアクセスしていますか?
私が取り組んでいるプロジェクトには特定の要件があります。サーバー側からマスター ページの CSS と属性を変更するのが好きです。アプリのテーマを変更したい。
Nancy - 超シンプルなビュー エンジン: ビューで MasterPage のタイトルを上書きするにはどうすればよいですか?
これを確認した後、マスターページのプロパティをオーバーライドする方法がわかりました。Nancy を Web フレームワークと超シンプルなビュー エンジンとして使用しています。これはナンシーのデフォルトです。ここでは、前のリンクに従って、ビューに渡すすべてのビュー モデルでテーマ属性を渡す必要があります。
それで、私の質問は、これ以外に方法はありますか?つまり、データベースに直接アクセスして、テーマの現在のユーザー設定を確認してレンダリングし、コア アプリケーション部分はそのまま残ります。
さらに詳細が必要な場合はお知らせください。
c# - Nancy Ninject モジュールの構築
Ninject を IoC コンテナーとして使用して Nancy モジュールをテストしようとしています。私の問題は、Nancy に IoC バインディングを使用して NancyModule タイプを解決させることができないように見えることです。
最新の Nancy on Nuget、最新の Ninject でソースからビルドされた最新の Nancy.Bootstrap.Ninject を使用しています。
私のテスト設定は次のとおりです。
これが私のテスト セットアップです。これが私のホスト設定です(私のアセンブリで定義されています):
私のIoCバインディングは次のとおりです。
Nancy モジュールの構築を制御したい。Nancy のソースを調べたところ、nancy が適切なキーを持つタイプ NancyModule のすべての登録済みバインディングについて、構成済みの IoC コンテナーに要求するように見えます。以下のコードは、Nancy.Bootstrappers.Ninject アセンブリで定義されています。
キーは、キー ジェネレーター オブジェクトを使用して生成されているように見えます。
これが、バインディングが名前付きバインディングとして設定されている理由です。考え方は、Nancy が (モジュールの) 名前付きバインディングを要求すると、私の名前付きバインディングを選択するというものです。
期待どおりに機能していません。Ninject は、タイプ NancyModule に対して複数のバインディングが設定されていると不平を言っています。
繰り返しますが、私の目標は Nancy モジュールの構築を制御することです。
どんなアイデアでも大歓迎です。
PSモジュールに依存関係を注入することについて話すとき、私はこの質問のようにNinjectModulesを参照しません/参照しません
c# - その他のNancy.Testing.BrowserGET/ PUT / POST / DELETE
ナンシーフレームワークを使用しています... http://nancyfx.org/
次の例のように、クライアント側でBrowserオブジェクトを使用してNancyサービスを利用する場合は、https ://github.com/NancyFx/Nancy/wiki/Testing-your-applicationを参照してください。
アプリがテストされていなくても、Nancy.Testingを使用する必要がありますか?言い換えると、このオブジェクトのようにGet、Put、Post、およびDelete操作を実行する他のブラウザオブジェクトは存在しますか?
singleton - NancyFX:IUserMapperシングルトンが2回インスタンス化されるのはなぜですか?
FormsAuthenticationの非常に単純な例を実装しようとしています。それは現実の生活ではありませんが、問題を引き起こしました。アプリケーションレベルのシングルトンとなることを目的としたAuthenticationServiceは、2回インスタンス化されているように見えます。
コードは次のとおりです。
上記のコードは、私が次のように使用してLoginModule
います。AuthenticationService
モジュールのコンストラクターを介して、アプリケーションレベルのシングルトンインスタンスを注入していることに注意してください。
何が起こるべきかというと、ユーザーPOSTs
がユーザー名とパスワードを入力すると、これらはメソッドAuthenticationService
を介してチェックされます。GetIdentifier(..)
資格情報が一致する場合、単一のGUID
識別子が返されます。これは、フィールドとして作成され、アプリケーションの起動時にシングルトンが最初にインスタンス化されるときに1回設定GUID
されるため、常に同じになります。readonly
AuthenticationService
ただし、そうではありません。代わりに、の2つの異なるインスタンスが作成されます。1つはコンストラクターにAuthenticationService
挿入されてメソッドを呼び出すために使用され、もう1つはナンシーがメソッドを呼び出すために使用します。LoginModule
GetIdentifier(..)
IUserIdentity.GetUserFromIdentifier(..)
これらの2つのインスタンスは異なるGUID
識別子を持っているため、GetUserFromIdentifier(..)
メソッドは常にnullを返します。
実装されていない標準のシングルトンサービスをテストしましたがIUserMapper
、期待どおりに機能し、インスタンスは1つだけ作成されます。
したがって、ナンシーはIUserMapper
シングルトンを2回インスタンス化しているようです。1回はFormsAuthentication中に内部で使用するため、もう1回はLoginModule
コンストラクターに注入するためです。
私の間違いを見つけられますか?
ありがとう
asp.net - C#5 async / awaitを使用してasp.netでホストされているモジュールから非同期プロセスを呼び出すにはどうすればよいですか?
NancyModuleGetメソッドを介して呼び出される長時間実行プロセスがあります。プロセスの実行中にブラウザーがハングするのではなく、この呼び出しを非同期にします。つまり、Getメソッドをすぐに返し、長時間実行されているプロセスにその処理を任せます。その後、定期的にプロセスのステータスを確認し、それに応じて行動することができました。
私はC#5の非同期/待機機能に不慣れですが、これらはまさにこの種のタスクのためのものであると確信しています。以下のコードは私の試みを示しています。期待どおりに非同期で実行されていないことを示すロギングをいくつか入れました。代わりに、長時間実行されるプロセスがGetメソッドをブロックするため、ブラウザーがハングします。
モジュール
サービス
拡張方法
ログ出力
上記のログ出力から、LongProcess()
がGetモジュールの戻りをブロックしていることがわかります。タスクが非同期で実行されている場合、ログは次のようになります。
期待されるログ
await
実際に必要なのは、NancyModuleGetメソッドに入れることだと思います。以下のコードのようなものかもしれませんが、モジュールコンストラクターをとしてマークすることができず、Getメソッド内でasnyc
使用できないためawait
(または現在信じている) 、これを行うことはできません
ヘルプ、例、またはリソースへのポインタをありがとう。
編集1
async
さらなる調査により、asp.netはデフォルトで積極的に通話を阻止しているように見えることが明らかになっています。とは何か、Session
そしてそれが非UIスレッドを処理する方法と関係があると私は信じています。だから私は私のweb.configに以下を追加しました(以下を参照)
- UseTaskFriendlySynchronizationContext
- enableSessionState = "false"
残念ながら、それは何の違いもありません、そして、私のasync
/await
呼び出しLongProcess()
はまだブロックしています。