問題タブ [webhttpbinding]
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.
wcf - ストリーミングされた webHttpBinding はストリーミングされません
大きなファイルをアップロードするための WCF REST サービスを作成する必要があります。エンドポイントをストリーミング webHttpBinding にしましたが、ストリーミングになりません。
サービス例:
Web.config:
クライアントコード:
メソッド UploadFile のコードは、requestStream.Close() が呼び出された後にのみ呼び出されます。なんで?
wcf - Asp.net セッションが WCF WebHttpBinding で動作しないようです
WCF REST json サービス (WebHttpBinding) を実行しています。純粋な WCF セッションはこの種のバインドでは機能しないため、asp.net セッションを使用しています。したがって、次のように設定します。
私たちのweb.configで、そして:
サービスの実装に加えて。次のようないくつかのサービス方法があります。
次に、各メソッドで HttpContext の sessionId をテストします。
問題は、常に変化していることです。Web ブラウザーでOpenSession?userName='toto'を呼び出し、その直後にGetSomething?somethingId=1234を呼び出すと、セッション ID が変更されます。
Cookie が wcf によって適切に処理されていないようです。フィドラーで OpenSession メソッドを呼び出すと、http ヘッダーで、サービスから返される「Set-Cookie」がありません。
jquery - json.net を使用して JSON を JScript に返す最良の方法
WCF を使用して JSON を返しているwebHttpBinding
ので、一部のグリッドで JQuery を使用できます。今日、私はデータベースにクエリを実行し、DataTable
バックを取得し、Linq を使用してList<DTO>
必要なフィールドを入力し、それを使用してシリアル化しSerializeObject
て、クライアントに文字列として返すことができるようにします。以下は、実装のスニペットです。
インターフェイス側の構成は次のとおりです。
戻り値は、parseJSON を使用して解析する必要がある JSON 文字列です。
これは、JScript クライアント側で使用される JSON 結果を返すための最良/正しい方法ですか? 文字列以外のものを返し、解析を回避する方法はありますか?
編集
クライアント側では、ASP.NET Web フォームではなく MVC3 を使用しています。Tks
c# - WebHttpBindingを使用してSQLoverHTTPから表形式データを送信するための絶対最速の方法
WCFエンドポイントを使用してHTTP経由でSQL表形式データを送信する最速の方法は何でしょうか?
現在、ESQLを使用してEntity Frameworkにクエリを実行し、DataTableの結果をbyte []にシリアル化して送信し、もう一方の端で逆シリアル化しています。これは遅いようです。現在、シリアル化されたデータのサイズは、15000行以上で約4000バイトになります。私もODataServicesを試しましたが、それもかなり遅かったです。
最速だと思うJSONとは対照的に、1048行のSQL行のみを含むJSONファイルはほぼ200000バイトになります。データのサイズとHTTPを介した転送速度との間に直接的な相関関係はありますか?(直感的に思えますが、私は前向きではありません)。
最速のフォーマットは何でしょうか?SQLDataReaderを使用してJSONに移行し、JSONを送信することを考えています。これはうまくいくはずですが、よくわかりません。これは、データ同期のみを目的としています。
ありがとう。
編集 もう少しトレースしました、私の最初の測定のいくつかが間違っていたようです。以下のそれぞれの方法をミリ秒単位で参照してください。
2011年7月11日月曜日午後6時42分23秒::関数「逆シリアル化」期間。経過:481ミリ秒
2011年7月11日月曜日午後6時42分23秒::関数'HttpRequest'期間。経過:4776ミリ秒
2011年7月11日月曜日午後6時42分22秒::DataTableの長さ(バイト)=13047247バイト
上で参照したDataTableには約7000行が含まれていましたが、急勾配のようですよね?
c# - AJAX サービスから大きな JSON ファイルを返す - WCF
JSON を返す AJAX ベースの WebGet メソッドがあります。数千行の JSON 結果では機能しません (100 行程度しか取得しない場合は機能します)。Firebug コンソールに情報が表示されずに、ブラウザーが停止するだけで何も起こらないことに気付きました。
そして、これが私のWCFのサーバー側構成です。
これは、私が適用している webHttpBinding 構成です。
そして、ここに endpoing 動作があります:
すべてが限界に達しているように見えますが、うまくいくはずですが、何が欠けているのでしょうか?
wcf - Accessing the HTTP headers from a WCF Service
I need to access the HTTP response headers that are to be returned to the client from a WCF Service. Accessing the HTTPContext is easy(through HttpContext.Current.Response), but what is the event/extension/behavior that is executed lastly, when the StatusCode is already set (for ex. if the status is 500)?
EDIT: Message Inspectors don't seem to be a good solution here, because at the time they run, the status code isn't set yet. (At least in my trial that was the case)
wcf - WCF は netTcpBinding を見つけることができません
webHttpBinding と netTcpBinding の両方からアクセスできる WCF サービスを作成しようとしています。Java クライアントを介して webHttpBinding にアクセスできるようにすることに成功しました。現在、netTcpBinding を機能させるために取り組んでいます。
このように構成をセットアップしました。
同じソリューションで、netTcpBinding に接続したいテスト アプリケーションがあり、[サービス参照] を右クリックして [サービス参照の追加...] を選択しました。「Discover」をクリックすると、サービスが見つかります。
「http://localhost:8732/Design_Time_Addresses/MR_Jukebox_Service」のダウンロード中にエラーが発生しました。リクエストは HTTP ステータス 404: Not Found で失敗しました。メタデータに解決できない参照が含まれています: 'http://localhost:8732/Design_Time_Addresses/MR_Jukebox_Service'。メッセージを受け入れることができるhttp://localhost:8732/Design_Time_Addresses/MR_Jukebox_Serviceでリッスンしているエンドポイントがありませんでした。これは、多くの場合、アドレスまたは SOAP アクションが正しくないことが原因です。詳細については、InnerException (存在する場合) を参照してください。リモート サーバーがエラーを返しました: (404) 見つかりません。現在のソリューションでサービスが定義されている場合は、ソリューションを構築して、サービス参照を再度追加してみてください。
しかし、netTcpBinding へのサービス参照を作成するために netTcpBinding を表示することもできません。
おそらくかなり単純なことなので、誰かが私が間違っていることを見ることができるかどうか疑問に思っていましたが、WCFの経験が不足しているため、気づいていません。
事前に助けてくれてありがとう。
wcf - Windows サービス (webHttpBinding 経由) でホストされている WCF シングルトン内のタイマーが予期せず停止する
Windows サービス (ローカル システムで実行) でホストされている WCF サービスがあります。その中で System.Timer を実行しています。Timer を初期化するOperation o1は、webHttpBinding を介して http エンドポイントで宣言されます。System.ServiceModel のトレースを有効にし、.svcLog ファイルから操作 o1 のリッスン期間を確認しました。約 20 時間実行した後、http エンドポイントでのリッスンが停止したことを示しています。
これは、着信メッセージがそのエンドポイントに到着しなかったためだと思います。ここでの問題は、リスニングが停止することであり、タイマー (その特定の操作o1内で初期化されたもの) も停止します!
リスナー、つまりタイマーを長時間維持するための推奨される方法はありますか? o1 操作を定期的に ping してメモリに保持できますか?
また、オペレーション o1 内で初期化するタイマー変数はインスタンス変数ですが、この変数はリスナーが閉じてもメモリ内にあると予想されません (WCF はシングルトンです)。
本当にありがとう。
コードの抜粋-
編集:System.Timers名前空間からSystem.Threading名前空間に変更し、時間間隔を長くすると、修正されました。タイマー変数はもう消えません。
c# - WebHttpBindingを使用してWCFサービスの「app.config」を定義する
MessageContractを使用せずにファイルをアップロードできるWCFサービスがあります。
StreamオブジェクトはUriTemplateの一部であるため、Streamオブジェクトの横にある別のパラメーターを使用できます。サービスはマネージドWindowsサービスとして実行されるため、ServiceHostを手動で開始する必要があります。
これらすべてで、サービスが起動し、正常に機能します。ただし、上記の一部をapp.configファイルに移動したかったのです。これを行うために、の2行目をコメントアウトし、OnStart
1行目を。に置き換えましたFileServiceHost = new ServiceHost(typeof(FileService))
。次に、その情報をapp.configに追加しました...
そして突然、サービスが起動できなくなります。FileServiceHost.Open
メソッドの次の例外をスローしますOnStart
。「オペレーションUploadFileのリクエストをストリームにするには、オペレーションにStreamというタイプの単一のパラメーターが必要です。」
app.configでサービスを定義する方法に何か問題があるはずです。そこからサービスを削除すると、すべてが正常に機能するからです。私はここで何が間違っているのですか?
erlang - セッション PID と JID を使用して SID を抽出する
で使用できるように、PID と JID を使用して bosh セッション (ejabberd) の SID を抽出する方法を見つけようとしてejabberd_sm:unset_presence
います。どこでも検索しましたが、それを行う方法が見つかりません。
基本的に、私は Ejabberd と Strophe を使用してチャット システムを構築しました。私が達成しようとしているのは、ユーザーが 1 つのページでオフライン ボタンを押したときに、その JID に関連付けられているすべてのセッションをオフラインにする必要があるというejabberd_sm:get_session_pid
ことです。 t SID を抽出する方法を見つけます。私も試しSID ! Disconnect
ましたが、それは私が望まないユーザーを完全に切断します。
誰かがこの種の作業を行った場合は、私を助けてください。そのようなことを実装するための他のアイデアも大歓迎です。
ありがとう