問題タブ [servicestack-bsd]
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.
servicestack - null リクエストのためにセッションを持てない場合、自己ホスト型の ServiceStack でどのようにコーディングするのが最善ですか?
ServiceStack 3.9.71 を使用しています。Linux にデプロイできるようにするために、自己ホスト型のルートに入りますが、Mono を悩ませているメモリ リークの問題を回避することもできます。
自己ホスト型サービスの問題点は、要求がなくなったことです。それがなければ、セッションもありません。セッションを取得しようとすると失敗します
シングルトン経由でアクセス可能な ASP.NET リクエストのみがサポートされています
null リクエスト オブジェクトが原因です。
質問は次のとおりです。
- 自己ホスト型の ServiceStack サービスでリクエストを取得できない理由を誰か説明できますか?
- どうすればそれを回避できますか?
たとえば、リクエストを呼び出したユーザーの詳細 (ICustomAuthSession にあるものなど) をサービスが知る必要がある場合、どのようにすればよいでしょうか? キャッシュに実際にセッションが含まれていることがわかりますが、リクエストがないため、キャッシュからセッションを取得するために使用できる SessionKey がありません。私はそれについていくらかの議論を見ていますが、正確に何をすべきかを完全に理解することはできません.
servicestack - ServiceStack でホストされているテストで「HttpListenerBase.Instance は既に設定されています」を回避するにはどうすればよいですか?
ServiceStack 3.9 でビルドされたプロジェクトがあり、ServiceStack のセルフホスティング API 機能を使用する広範なテスト カバレッジがあります。
多くのテスト フィクスチャは次のようになります。
問題は、テストが失敗したときに、TearDown が常に正常に実行されているように見えない場合です。その後、プロジェクトの他のすべてのテストが同じエラーで失敗します。
System.IO.InvalidDataException : HttpListenerBase.Instance は既に設定されています
以下の頻度
http://localhost:60666/
マシン上の既存の登録と競合するため、プレフィックスをリッスンできませんでした
これが発生すると、テスト スイート全体が数分間実行できなくなります。おそらく、基になるネットワーク バインディングの一部がタイムアウトするか、破棄されます。-そして数分後、すべてが再び機能し始めます。
どうすればこれをより優雅に処理できますか? http://localhost:60666/
AppHostを初期化する前にそのエンドポイントを強制的に破棄/登録解除できる方法はありますか? 他のテストが HTTP リスナーを初期化できないため、1 つの「適切な」テストが失敗して 1,000 回以上のテストが失敗した場合、何が起こっているのかを理解することはますます難しくなっています。
c# - ルート /json/syncreply は ServiceStack のどこから来るのですか?
この DTO を使用してサードパーティの API にリクエストを送信しようとしています:
クライアントの要求:
現在、Not Found
返信を頂いております。http://
Fiddlerを使用して送信すると、パス/json/syncreply
が追加され../api/v1/json/syncreply
ていることがわかります。つまり、これがどこから来たのか、リクエストが正しいパスで送信されるようにする方法を理解しようとしています。
乾杯
c# - ServiceStack OrmLite を使用して動的型のキー値テーブルを作成する
次の行に沿って、データベースにキー値テーブルを作成したい
わずかに変更された SqlProvider を使用すると、をCreateTable<KeyValue>()
生成するのに問題はありません。varchar(1024) Id
varchar(max) Value
オブジェクトの保存に問題はありません。問題は、オブジェクトをロードするときです
content.Value
この時点で文字列です。
データベース レコードを見ると、値のテキストに型情報が格納されていないように見えます。
ServiceStack.Text
適切な型情報で手動で呼び出して逆シリアル化を呼び出す以外に、私ができることは本当にありますか?
絶対動的は必要ありません。実際の使用例は、動的ではなく基本クラスを使用したポリモーフィズムです。したがって、値が基本クラス、動的、オブジェクトなどの型であるかどうかはあまり気にしません。クラスを使用する以外は関係ありません
Value の文字列以外は取得できませんでした。オブジェクトを正しく逆シリアル化できるように型情報をシリアル化するように OrmLite に指示できますか?それとも手動で行う必要がありますか?
編集:さらに詳しい情報。OrmLite は によって定義された Jsv シリアライザーを使用しておりServiceStack.Text.TypeSerializer
、BSD バージョンではプラグ可能ではありません。KeyValue クラスに Type プロパティを動的な Value で追加すると、次のことができます。
私は本当にこれを行うためのより良い方法を望んでいます.1つのタイプのオブジェクトがデータベースに入り、別のタイプ(文字列)で戻ってくるのは本当に好きではありません。
web-services - Service Stack 3.9 での web.config の構成が機能しない
チュートリアルの ServiceStack に従っていますが、バージョン 3.9.71 を使用し、web.config を変更するとエラーが発生します。私のコードは次のようなものです:
asp.net - ServiceStack maxReceivedMessageSize
servicestack v3.9 を使用して作成されたサービスがあります。大きな結果セットを返そうとしていますが、クライアントで 500 内部サーバー エラーが発生しています。エラーの詳細を見ると、結果が例外にリストされていることがわかりますが、65536 文字の後に切り捨てられています。これが .net によって課されるデフォルトの制限であることはわかっています。私が知らないのは、サービススタックのためにそれを増やす方法です。
クライアントは、サービス スタックを使用しているため、Web 構成のバインディングを使用してサービスに接続していません。Web API 呼び出しの場合、バインディングで maxReceivedMessageSize を増やすことでこの問題を修正できるようです。サービススタックにもこの制限を増やす方法があると思いますか??
dll - NUGet から NLog 2.0.1 バージョンを取得できません
Visual Studio 2010 のパッケージ マネージャー コンソールで、次のように入力します。
そして、2.0.0 (ディスク上) を取得しています。Codeplexには2.0.1バージョンはありません。次のエラーのため、ServiceStack.Logging.NLog にはバージョン2.0.1が必要です。
バージョン2.0.1は、NuGet の利用可能なパッケージにも記載されています。
NLog.dll
とServiceStack.Logging.NLog.dll
を最新のServiceStack v3 スナップショットのファイルに置き換えましたが、プログラムは正常に動作します (ASP .Net4 Web アプリケーション) が、これは長い間解決策ではありません。ServiceStack のスナップショットNLog.dll
は2.0.0ServiceStack.Logging.NLog.dll
で、1.0.8です。