問題タブ [wshttpbinding]
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.
.net - トランスポートのみのセキュリティで wsHttpBidning を使用して WCF セッションを有効にする方法
現在、basicHttpBindings と SSL を有効にしてデプロイされている WCF サービスがあります。しかし、wcf セッション (asp セッションではない) を有効にする必要があるため、サービスを wsHttpBidnings に移動しましたが、セッションは有効になっていません
設定しました
しかし、私が設定したとき
サービス契約でそれは言う
コントラクトにはセッションが必要ですが、バインディング 'WSHttpBinding' がそれをサポートしていないか、サポートするように適切に構成されていません。
以下はWSHttpBindingの定義です
これで私を助けてください
wcf-binding - BasicHttpBinding 対 WsHttpBinding 対 WebHttpBinding
WCF には、いくつかの異なる種類の HTTP ベースのバインドがあります。
これら3つの違いは何ですか?
特に、機能/パフォーマンスと互換性の面での違いは何ですか?
.net - .netでのwsHttpBindingWCFサービスの設定を支援する
wsHttpBindingを使用してWCFサービスをホストしようとしています。makecertを使用して証明書を作成し、web.configにいくつかの行を追加しました。
これは私が得ているエラーです:
グーグルアップすると、証明書ファイルのアクセス権に問題があるようです。caclsを使用して、NETWORK SERVICEとユーザー名に読み取り権限を付与しましたが、何も変更されませんでした。
また、証明書ファイルのプロパティのセキュリティ設定に移動し、ネットワークサービスとユーザー名を完全に制御しました。再び無駄に。
問題が何であるか、そして私が正確に何をする必要があるかについて私を導くことができますか?私はこれらの証明書のことで本当に不安定です。
これが私のweb.configです。
wcf - IIS7のセキュリティモードTransportWithMessageCredentialを使用したWsHttpBindingが機能しない
現在、WCFサービスをIIS6からIIS7に移行しています。このサービスには、内部ストリーミングを目的とした非SSLエンドポイントと、SSLで保護された公開エンドポイントが含まれています。
パブリックで安全なエンドポイントは、wsHttpBindingとsecurity mode="TransportWithMessageCredential"を使用して実装されます。バインディングは次のようになります。
資格情報は、検証のためにカスタムユーザーリポジトリに対して認証されます。
サービスをIIS7(64ビットWin2k8)に展開した後、すべてのサービス(basicHttpBindings)は正しく応答し、wsHttpBindingsを期待します。httpsを使用してトリガーされた場合、常にHTTP 400ステータスコード(不正なリクエスト)を取得します。
IISでトレースを有効にした後、トレースからのメッセージは実際には役に立ちませんでしたが、問題を少し絞り込むことができました。
これまでに行った手順:
- IIS 7に再インストールされたWCF拡張機能(ServiceModelReg.exe -r -y)
- ホストに対してhttpsプロトコルを有効にし、ホストに自己署名証明書を追加しました
- wcf構成でDNS/ID設定を試してみました
- wcfserviceconfigにベースアドレスを追加しました
2時間グーグルしてこの作業を試みた後、最後の手段としてあなたにお願いします。IIS7のこの奇妙な動作を知っている人はいますか?
wcf - メッセージ セキュリティを備えた WCF で wsHttp を使用してデータ (シリアル化されたオブジェクト) の大きなペイロードを転送する
wsHttpを使用して WCF を使用して( NetDataContractSerializer経由で) 大量のシリアル化されたオブジェクト グラフを転送する必要がある場合があります。メッセージ セキュリティを使用しており、引き続き使用したいと考えています。このセットアップを使用して、シリアライズされたオブジェクト グラフを転送したいと思います。転送しようとすると、System.InsufficientMemoryException 型の例外が表示されるようになりました。
少し調査した結果、WCF では、デフォルトで、サービス呼び出しの結果が、シリアル化されたデータを含む単一のメッセージ内に含まれており、このデータは、メッセージ全体が完全に書き込まれるまでデフォルトでサーバーにバッファリングされるようです。したがって、メモリ例外は、サーバーがバッファがいっぱいであるために割り当てることができるメモリ リソースを使い果たしているという事実によって引き起こされています。私が遭遇した 2 つの主な推奨事項は、ストリーミングまたはチャンクを使用してこの問題を解決することですが、それが何を伴うのか、また現在のセットアップ (wsHttp/NetDataContractSerializer/Message Security) でどちらの解決策も可能かどうかは明確ではありません。これまでのところ、メッセージの暗号化と復号化は部分的なメッセージではなく、データのセット全体に対して機能する必要があるため、ストリーミング メッセージ セキュリティを使用しても機能しないことを理解しています。チャンクは可能かもしれませんが、私がリストした他の制約でどのように行われるかは明確ではありません。利用可能なソリューションとその実装方法について誰かがガイダンスを提供できれば、非常に感謝しています。
私の場合、通信の両側を所有および制御し、どちらの側にも転送されるデータに共有インターフェイス パターンを使用するため、他のクライアントとの相互運用性については特に心配していません。したがって、私は、wsHttp をメッセージ セキュリティと共に使用して、NetDataContractSerializer を使用してシリアル化されたオブジェクト グラフを転送するという制約の範囲内に収まるアイデアを受け入れており、既存のサービスと周囲のインフラストラクチャを大幅に変更する必要がないソリューションを好みます。
関連リソース:
- チャンキングチャンネル
- 方法: ストリーミングを有効にする
- WCF 経由の大きな添付ファイル
- カスタム メッセージ エンコーダー
- InsufficientMemoryException の別の発見
- 非二重チャンキング チャネルが必要
- WCF と遅延実行による大きなコンテンツのストリーミング
このデータに対して実行できるあらゆるタイプの圧縮にも興味がありますが、クライアントが gzip を自動的にサポートするように、.NET 4.0 に移行できるようになったら、トランスポート レベルでこれを行うのがおそらく最善のようです。これを正しく理解していればヘッダー。
更新 (2010-06-29):
バッファリングされたメッセージが大きすぎることが問題の原因であるという結論に達した方法に関するいくつかの歴史。もともと、テスト中に以下のCommunicationExceptionを見ました。
基になる接続が閉じられました: 接続が予期せず閉じられました。
最終的に、これを実行してさらにログを記録した後、指定されたメッセージで問題を引き起こしている基になるInsufficientMemoryException例外を見つけました。
268435456 バイトのマネージ メモリ バッファの割り当てに失敗しました。使用可能なメモリ量が少ない可能性があります。
これは、次の方法に由来します。
System.ServiceModel.Diagnostics.Utility.AllocateByteArray(Int32 サイズ)
つまり、失敗は配列の割り当てに起因します。シリアル化された同じデータをディスクに書き込むと、約 146MB を占めます。それを半分に減らすと、エラーが発生しなくなりますが、バッファを壊す特定のしきい値と、それがシステムに固有なのか、それともいいえ。
更新 (2010 年 12 月 6 日):
この時点で、次の説明を求めていると思います。私の理解では、デフォルトではメッセージセキュリティを備えたWCF wsHttpでは、応答がクライアントに送り返される前にメッセージ全体(通常は返されるデータセット全体)をサーバーにバッファリングする必要があり、問題が発生します。
可能な解決策:
- データ サイズの制約 - 送信バッファの最大容量を消費しないようにするために、なんらかの形式の圧縮、エンコード、またはメソッドのようなページングを使用して返される実際のデータの制限を使用します。
- ストリーミング - WCF を介してストリーミング方式で大量のデータを送信できますが、これらの手法ではすべてのデータをバッファリングする必要があるため、これは wsHttp または MessageSecurity と互換性がありません。
- Chunking Channel - データを個別のメッセージに分割できるようにしますが、現時点では、これがサービス コントラクトの設計に及ぼす制約と、メッセージ バインディングで wsHttp を引き続き使用できるかどうかはわかりません。
返すことができるデータを制限することは、ある程度までしか機能せず、ストリーミング オプションと同様に、これらのオプションでは、WCF サービス呼び出しの外部で多くの下位レベルの作業をコーディングする必要があります。したがって、私が知る必要があるのは、単一のデータ セットをサーバー上で個別のメッセージに分割し、クライアント上でつなぎ合わせることができるようにすることで、大きなメッセージの問題を回避できる可能性のあるチャンキング チャネルの実装があるかどうかということです。これにより、既存のサービス コントラクトのインターフェイス/形状を変更する必要がなくなり、メッセージ セキュリティと wsHttp を使用しながら、各サービス実装のクライアントとサーバーの部分からプロセスがほとんど隠されます。チャンキング チャネルで、ストリームを公開するためにサービス コントラクトを書き直す必要がある場合は、必要ありません。これがストリーミング ソリューションと実際にどのように異なっているかがわかります。誰かが私のためにこれらの質問に簡単に答えることができれば、賞金を授与し、それを答えとしてマークします.
wcf - IIS7でWCFサービスを構成する方法:HTTPS、セッション、wsHttpBinding(SOAP)
状況:
- IIS7(.NET4)を搭載したWindows2008Webサーバーがあります。
- デフォルトのHTTPS(443)ポートを介して のみWebサーバーと通信できます
- サーバーでホストされているASP.NETWebサイトがあり、サービスはWebサイトコードの一部です。
- 一部のクライアント(WCFをサポートするデスクトップアプリケーション)は、新しいWCFWebサービスと通信したいと考えています
- パーティ間のメッセージサイズは100〜400kbです。
- WCFサービスをIISの一部として維持したいと思います。
- クライアント側では、サービスに接続するためのカスタムユーザー名とパスワードを要求します
- より多くのDBプロセスが背後にあるより長いセッションがあります
- そして、クライアントからのpingのような短い短いセッションがあります
- クライアントのパスワードは(DBから)Webサーバーに保存されます。クライアントはこれらのパスワードに対して認証される必要があります。
質問:
1。これらの制約から、使用するのに最適なプロトコルは何でしょうか?
2.デフォルトでセッションを使用しますか?
3.最初にこのバインディングを試しました(動作しますが、セッションのサポートはありません)
セッションを有効にするには:
私の感じでは、このトランスポートとメッセージのセキュリティは多すぎます。つまり、wsHttpBindingとのセッションを許可するには、これが本当に必要なのでしょうか。
c# - WCF サービス: WSHttpBinding
テスト用の自己ホスト型 wcf アプリケーションを作成し、https のサポートを追加しようとしました。サーバー アプリケーションのコードは次のとおりです。
何の名前(住所)を列に並べればいいですか
「こんにちは」が間違っているからですか?
ありがとう。
c# - app.configで定義された属性の値を読み取る方法は?
次の形式の app.config ファイルがあります。
name="XXX" を持つノード エンドポイントの属性 "address" の値を読み取りたいです。やり方を教えてください!
@marc_s: 以下のコードを使用して上記のファイルを読み取りますが、clientSection.Endpoints のメンバーが 0 であることを示しています (Count=0 )。助けてください!
wcf - powershell2 で wcf Web サービスにアクセスする
私の wcf Web サービスの 1 つにアクセスするコマンドレットを作成しようとしています。
新しいコマンドレット: New-WebServiceProxy を見てきましたが、実際には ASMX Web サービスを使用できるようにしか見えません。
この記事を見ました。これは Powershell v1.0 に焦点を当てていますが、より良い方法を使用したいと思います (存在する場合)。 http://keithhill.spaces.live.com/blog/cns!5A8D2641E0963A97!645.entry
この Web サービスを使用する他の .net アプリから、私が使用する構成の種類を次に示します。
誰でも私にアドバイスしたいですか?
java - WSHttpBinding を使用した WCF と Java の相互運用、
シンプルな WCF アプリケーションを Java クライアントで動作させようとしています。Service は、WSHttpBinding を使用していくつかの単純な操作を公開しますが、これは完全に実行されます。
現在、何らかの理由により (おそらく Java 側の WS-* 仕様が不完全であるため)、リモート システムでホストされているこの WCF サービス用の Java クライアントを生成することは不可能のようです。
ただし、basicHttpBinding と共に使用すると、すべて正常に動作します。
Java/非 WCF クライアントと相互運用可能な WCF (wsHttpBinding) を正常に使用または実装した場合は?