問題タブ [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# - What is the best practice to call a DELETE restful method from a web page?
I am building a small Nancy webapp which would do CRUD operations on a table. It uses GET, POST and DELETE verbs. I want to have a link in the web page to call the delete method. Using a "anchor" tag would use the GET method, by default. I am not comfortable with changing the webservice to use GET verb to do delete operations as it would break RESTful concept. What is the best practice in such situation?
nancy - NancyFXでフォームをモデルにバインドする方法
私はNancyFXを初めて使用し、投稿されたフォームをモデルにバインドしようとしています。
モジュールで、投稿された値にアクセスしようとすると、次のステートメントを実行します。
結果は次のとおりです。投稿された値の代わりに「Nancy.DynamicDictionaryValue」
誰かが私がしている初心者の間違いを教えてもらえますか?
フォームは次のようになります。
Module contructorでのルーティング:
ravendb - Nancy.DynamicDictionary を RavenDB に保存すると、プロパティ名のみが保存され、プロパティ値は保存されないのはなぜですか?
組み込みのRequest.Form
.
オブジェクトの単純なインスタンスdynamic
(テスト プロパティと値を含む) を保存すると、すべてが機能し、プロパティ名と値の両方が保存されます。ただし、ナンシーのものを使用するとRequest.Form
、動的プロパティ名のみが保存されます。
動的データ (RavenJObjects など) を取得するときに正しい型を復元するために、さらに問題に対処する必要があることは理解していますが、今のところ、最初に動的な名前/値を保存する問題を解決したいと考えています。
テスト リクエストとコード全体を次に示します。
フィドラー リクエスト (PUT)
ナンシー・モジュール
サービス
TestDynamic クラス
実行時の Request.Form の動的コンテンツ
結果の RavenDB ドキュメント
注: Request.Form のタイプはNancy.DynamicDictionary
. から継承されIEnumerable<string>
、期待されるIEnumerable<string, object>
. RavenDB はDynamicDictionary
、メンバー名と値のペアではなく、動的なメンバー名のみを列挙していると思います。
dynamic
RavenDB に保存することに関して、Request.Form をオブジェクトとして扱う方法、または扱うことができるかどうかを誰か教えてもらえますか? 可能であれば、RavenDB が正しくシリアル化できるように、インスタンスDynamicDictionary
を構築するために手作りの列挙を避けたいと考えています。dynamic
ありがとうございました
編集 1 @Ayende
DynamicDictionary はGetDynamicMemberNames()
メソッドを実装しているようです:
GitHub のコードを見ると、次の実装が明らかになります。
これはあなたがここで見たいものですか?
編集2 @TheCodeJunkie
コードの更新をありがとう。これをテストするために私は持っています:
- GitHub から NancyFx/Nancy master ブランチのローカル クローンを作成しました
- 私のソリューションに Nancy.csproj を追加し、プロジェクトを参照しました
- 上記と同じテストを実行します
新しい DynamicDictionary からの RavenDB ドキュメント
結果のドキュメントが改善されていることがわかります。型情報はDynamicDictionary
RavenDB によって正しく取得されるようになり、動的プロパティ名は正しくシリアル化されますが、残念ながら動的プロパティ値はシリアル化されません。
下の画像は、動作中の新しい外観を示していますDynamicDictionary
。私にはすべて問題ないように見えます。新しい辞書インターフェイスがはっきりと見えます。私が気付いた唯一のことは、デバッガーの動的な「結果ビュー」(「動的ビュー」とは対照的に) が、プロパティ名のみを表示し、それらの値を表示しないことでした。「動的ビュー」は、以前と同じように両方を示しています (上の画像を参照)。
実行時の DynamicDictionary の内容
azure - WAIISHost が特定のファイルをロックする理由
Azure に Web アプリケーションをデプロイしています。アプリケーションは Nancy を使用して構築されており、RoleEntryPoint は定義されていません (これは問題ではなく、Web サイト自体は問題なく動作していることに注意してください)。Azure にデプロイするときに、Web デプロイ オプションを有効にしました。
Web デプロイメントを実行しようとすると、次のエラーが発生します。
エラー 7 Web 配置タスクが失敗しました ((2012/6/26 12:28:45 PM) リモート コンピューターで要求が処理されたときにエラーが発生しました。)
(6/26/2012 12:28:45 PM) リモート コンピューターで要求が処理されたときにエラーが発生しました。「Castle.Windsor.dll」で操作「ファイルの作成」を処理中にエラーが発生しました。エラー コードは 0x80070020 でした。別のプロセスによって使用されているため、プロセスは 'E:\approot\bin\Castle.Windsor.dll' にアクセスできません。
ロール インスタンスに RDP を実行し、プロセス エクスプローラーを使用すると、プロジェクトが参照する多数のアセンブリが WAIISHost にロックされていることがわかります。
これらのファイルがロックされる原因を特定できませんでした。
ありがとう、ジェイソン
c# - セッションごとのリクエストのためにNancyでNHibernateセッションをどのように処理する必要がありますか?
本当に、私の質問はタイトルにあります...セッションごとのリクエストのためにナンシーでNHibernateセッションをどのように処理する必要がありますか? それ自体に良い答えがある場合は、それを選択してください...さらに背景が必要な場合は、次のとおりです。
ASP.NET MVC で actionFilter を使用して、Web 要求の開始時と終了時に NHibernate コンテキストでセッションを開いたり閉じたりすることに慣れています。こうすることで、リクエストのコンテキスト内の各データベース操作で同じセッションが使用されます。
Nancy を使用する新しいプロジェクトで同じ種類のものをセットアップしたと思っていましたが、セッションが必要になるたびに新しいセッションが生成されます。ブートストラッパーでセッションの開始と終了を処理する方法は次のとおりです (StructureMapBootstrapper から継承):
私のは、このサイトISessionContainer
に似たものに基づいています。私の実装では、NHibernate のセッション コンテキストを使用して「現在のセッション」を取得します。ISessionContainer
現在、Nancy プロジェクトでこれを試すと、ISessionContainer.Session
プロパティが要求されるたびに新しいセッションが返されます。Nancy では Cookie ベースのセッションがデフォルトで有効になっていないためだと考えたので、これをブートストラップに追加しました。
サイコロはありません。新しいセッションを依頼するたびに、今でも新しいセッションが与えられています。
しかし、本当に、私は自分の問題を診断したくありません。Nancy で NHibernate セッション管理を処理する標準的な方法を知りたいです。
asp.net - ASP.NETWebフォームのナンシールーティング
私は自分のWebフォームプロジェクトにナンシーを実装しようとしています。私はこのガイドを読みました: https ://github.com/NancyFx/Nancy/wiki/Hosting-nancy-with-asp.net
これを設定に追加しました:
web.configファイルを含む「/nancy」フォルダーを作成しました。
私は次のC#コードを持っています:
これは「/nancy/ ok」にアクセスするときに機能しますが、「Get["/ok"]」を「Get["/ok/ok"]」に変更して「/nancy/ ok/ok」にアクセスすると404見つかりません(小さなトロール画像とすべて)
編集*「Get["/ok"]」のままにして/ok/ ok / okにアクセスすると、「Ok」が返されます...
より具体的なルートを作成できない理由はありますか?
挨拶マッド
c# - NancyFx を使用する利点は?
NancyFx と呼ばれる HTTP 呼び出しを行うための別のフレームワークがあります。私の質問は、それを使用する利点は何ですか。私はドキュメントをざっと見ました:
https://github.com/NancyFx/Nancy/wiki/Documentation
これを使用したいという目立った機能はないようです。WebHttp よりもそれを使用する利点は何ですか?
PS:私は何度も何度も繰り返される奇妙なフレーズについて読み続けています。この「スーパー・デュパー・ハッピー・パス」以外に何かありますか? 実際の機能は実装されていますか?
asp.net - サイトのセクションのフォーム認証を無効にする
フォーム認証が有効になっている IIS7 で ASP.net MVC3 アプリを実行しています。また、アプリケーション内のフォルダーの下にホストされている共同ホストの Nancy サービスもあります。
問題は、Nancy サービスが 401 (Unauthorized) ステータスを返すたびに、リクエストが自動的にログイン ページにリダイレクトされることです。
そのフォルダーから返される 401 エラーを無視し、元の json 応答のみを返すように ASP.net に指示する方法はありますか?
asp.net - ナンシーモジュールでASP.NETセッションオブジェクトにアクセスできません
MVC3アプリケーションをいくつかのナンシーモジュールと組み合わせようとしています。私のアプリケーションでは、MVC3コントローラーでセッション変数を設定してから、Nancyモジュールでその変数を読み取ろうとしています。Nancyコントローラーで変数を読み取ろうとすると、Sessionオブジェクトがnullになります。
これが私のMVC3コントローラー、ナンシーモジュール、ルートweb.configの要点です。
https://gist.github.com/3105219
現在のhttpcontextにぶら下がっている他のすべての(ほとんどの)オブジェクトはnullではなく、アプリケーションのMVC3セクションで比較すると「正常」に見えます。
編集:さらにテストすると、生のNancyアプリケーションでASP.NETセッションにアクセスできないことがわかりました。このページの下部にある「最初のNancyアプリケーションの作成」セクションの手順を使用してアプリケーションを作成しました。
https://github.com/NancyFx/Nancy/wiki/Introduction
これが単純なNancyアプリケーションのweb.configです。
nancy - NancyFX でストリーミング出力を書き込むにはどうすればよいですか?
Nancy を使用して単純な Web アプリケーションを作成しています。少なくとも 1 つのリクエストで長さが不明なストリームが発生したため、提供できませんContent-Length
。Transfer-Encoding: chunked
、または (この場合は同様に許容されます)を使用したいと思いConnection: close
ます。
Nancy のソース コードを簡単にハックして、 とResponse.BufferOutput
に設定HttpContext.Response.BufferOutput
するコードを追加しましたfalse
。ここでそれを見ることができます:
効果はないようです。5 秒後に一斉に応答が返ってきます。これを単純なWebRequest
ベースのクライアントでテストしました。
Nancy でチャンク出力を機能させるにはどうすればよいですか? 私は ASP.NET ホスティングを使用していますが、他のホスティング オプションの回答に興味があります。
を使用して単純なサーバーを作成する場合HttpListener
、 に設定SendChunked
するとtrue
、チャンクされた出力が送信され、単純なクライアントはチャンクで正しく受信します。