問題タブ [wcf-extensions]

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.

0 投票する
1 に答える
693 参照

c# - wcfextras は、単一の WSDL ファイルではなく、多くのファイルを生成します

これがapp.config私が得たものです:

プロジェクト参照に追加wcfextrasし、ローカルにコピーするように設定しました。

その結果、XSD などのインポートを含む同じ WSDL ファイルが生成されます。

単一の WSDL ファイルを 1 つだけ生成するにはどうすればよいですか?

0 投票する
1 に答える
4616 参照

c# - WCF メッセージ インスペクターが機能しない

最近、WCF サービスが処理する要求/応答をログに記録する方法を模索していました。

その前に、トレース オプションで悪い経験をしました。現在、トレースから実際の応答と要求を取得する方法はまだわかりません (svctraceviewer ツールを試しましたが、意味のあるものは得られませんでした)。それでも、トレース ファイルが破損して生成されました (予期しない文字が含まれています)。

メッセージ インスペクタ テクノロジについて知ったのは、3 ~ 4 日前のことです。私はこのマニュアルを読み、他のプロジェクトでクライアント側のメッセージ インスペクターを実装しました。実際、wcf クライアントが送信したリクエストと、そのリクエストに対する他の側のサービス レスポンスを確認できました。

別の側のロギングも同じように簡単に行えることを願っています (たとえば、クライアントからサービス要求を取得し、それらに対するサーバー応答を取得するなど)。しかし、私は寒くない。詳細は次のとおりです。

ほとんどすべてのコードが NotImplementedException でスタブ化されましたが、すべてのメソッドとプロパティにブレークポイントを設定しました。さらに、彼らがどのように攻撃されたかを説明します。

サービスのインストール方法は次のとおりです。

サービスクラスには特別なものはありません。

では、この構造はどのように機能しますか。前に述べたように、すべてのメソッドとプロパティにブレークポイントを設定します。デバッグを開始すると、次の順序でブレークポイントがヒットしました。

OK、サービスに何かを送信して、それがどのように反応するか見てみましょう。そのため、(WSDL を使用して生成された) 要求を送信してhttp://localhost:8733/、有効な応答を取得します。そのためにSoapUIを使用しました。また、VS にはブレークポイント アクティビティはありません。メッセージ インスペクタが機能していません。サービス メソッド ヒットのブレークポイント。メッセージ インスペクタなしでメソッドが実際に機能していることを示します。

また、このコードを使用してサービスをセットアップする動作をアタッチしようとしました(したがって、app.configで動作を指定せずに):

このオプションでは、次のブレークポイント ヒットの順序が得られます。

それだ。また、サービスへのリクエストの送信に関するインスペクターのアクティビティもありません。

では、どうすれば機能させることができますか?

0 投票する
1 に答える
331 参照

wcf - WCFExtras XmlComments ...どこにありますか?

私は過去3時間、WCFExtrasが他の場所の中でもcodeplexサイトで説明している手順を使用して、XMLコメントをWSDLに出力するようにしようとしていました。最終的に、WCFExtrasが単一のファイルとして利用可能な2番目のWSDLも生成しており、XMLコメントがそのファイルに含まれていることを発見しました。

私の質問は、この情報はどこにも見つからないので、どのように機能するのかということです。WCFExtrasがWSDLにXMLコメントを出力しようとしないことを意図していますか?WCFはすでに自動的に生成していますか?これらのコメントに興味がある場合は、これからこの他のWSDLファイルを生成することになっていますか?

ここの誰かが知っているといいのですが。ありがとう!

0 投票する
0 に答える
1530 参照

wcf - HTTPS を使用した CustomTextMessageEncoder の WCF CustomBinding

私は、POST over HTTPS (IIS 上の ASP.NET 4.0) を介して text/xml タイプのドキュメントを受け入れる WCF REST タイプのサービスに取り組んでいます。誰かが web.config を手伝ってくれますか? ドキュメントを解析する CustomTextMessageEncoder のサンプル コードを使用してテストしています。エラーが表示されます:「メッセージ レベル セキュリティでは手動アドレス指定はサポートされていません。トランスポート セキュリティを使用するか、手動アドレス指定を行わないようにバインド ('CustomBinding'、' http://tempuri.org/ ') を構成してください。」

残念ながら、ManualAddressing をオフにすると、別のエラーが発生します。カスタム バインドであるため、TransportSecurity を有効にする方法がわかりません。

私がやっていることの web.config の主な部分は次のとおりです。

0 投票する
1 に答える
584 参照

c# - WCF 拡張性 MessageEncoder 実装

クラス ライブラリからメッセージ エンコーディングを制御できるイベントに ReadMessage と WriteMessage をマップするにはどうすればよいですか?

StrongType (動的/params object[] なし) onReadMessage および onWriteMessage イベントが必要なだけです。2 つのメソッドを受け入れることができるデリゲート/イベントをオーバーロードする方法はありますか?

0 投票する
2 に答える
9995 参照

wcf - ServiceHostFactory を使用して IIS Hosted WCF Service のクライアント エンドポイントに動作を追加する方法

IDispatchMessageInpector と IClientMessageInpector を実装して、AfterReceiveRequest メソッドと BeforeSendRequest メソッドのメッセージ オブジェクトを確認することを検討しています。私の要件は、WCF サービスのコード レベルで変更を加えることです。構成の変更はありません。この動作を、このサービスを呼び出しているすべてのエンドポイントとサービス自体にアタッチする方法。IContractBehaviour の実装は役に立ちますか?

編集 1: WCF サービスは IIS でホストされています。コードを介して動作を追加することは可能ですか?

編集 2: ServiceHostFactory を使用してこれを達成できるようです。Webconfig で定義されているクライアント エンドポイントに動作を追加するにはどうすればよいですか?

0 投票する
1 に答える
491 参照

wcf - WCF: 装飾による操作用のカスタム ヘッダーの挿入

こんにちは、操作が装飾されている場合、メッセージにカスタム ヘッダーを挿入する必要があります。

私はこれまでに何をしましたか?1) Attribute と IOperationBehavior を継承して Attribute を作成 2) 操作にカスタム OperationInvoker をアタッチ

属性:

インターフェース:

ここでの問題は、メッセージ ヘッダーを変更する場所がわからないことです。operationDiscription.Messages[] を介してメッセージにアクセスできますが、ドキュメントには、変更すると予期しない結果が生じると記載されています。

ありがとう、アビナッシュ

0 投票する
1 に答える
3612 参照

multithreading - WCF Operation.Contextはスレッドセーフではありませんか?

WCF サービスのコードをレビューしています。各メッセージのヘッダーに、サービスが後で DB への接続文字列を構築するために使用するデータを挿入します。これは、サービスが多数の異なるサイトで使用され、それぞれがサービスが照会する必要がある独自の DB を持っているためです。wcf 拡張性を使用します。リクエストを受信した後、メッセージ ヘッダーからデータを抽出し、(IExtension を実装する) コンテキストを作成し、それを OperationContext.Current.Extensions に追加するカスタム MessageInspector があります。返信を送信する前に、カスタム コンテキストが Extensions コレクションから削除されます。

ここで説明するように、これはかなり一般的なパターンです。

現在の WCF 呼び出しのデータをどこに保存しますか? ThreadStatic は安全ですか?

そしてここ:

http://social.msdn.microsoft.com/Forums/vstudio/en-US/319cac66-66e8-4dfe-9a82-dfd289c9df1f/wcf-doesnt-have-session-storage-so-where-should-one-store- call-specific-data?forum=wcf

サービスがリクエストを受け取り、それを処理し、返信を送信し、次のリクエストを受信する限り、これはすべて正常に機能します。しかし、サービスがリクエストを受信し、応答する前に 2 番目のリクエストを受信した場合はどうなるでしょうか? テスト用に小さなコンソール アプリケーションを作成しました。2 つの異なるスレッドから 2 つのメッセージを送信します。最初のリクエストが完了する前に 2 番目のリクエストが確実に届くように、wcf サービスを 2 秒間待機させました。

サイト ID : test1450 ; セッション: uuid:2caf47cf-7d46-4d72-9275-d9c037fa0e70;id=2: スレッド ID: 6

サイト ID : test1450 ; セッション: uuid:2caf47cf-7d46-4d72-9275-d9c037fa0e70;id=3: スレッド ID: 22

wcf は 2 つの異なるスレッドで実行される 2 つのセッションを作成するように見えますが、サイト ID は同じです。すべきではありません。このことから判断すると、OperationContext.Current.Extensions はスレッド間で共有されるコレクションのように見えます。今、私は自分のテストが間違っていて、何かを見逃していると思いがちです。

同様のことを試した人はいますか? OperationContext.Current がスレッドセーフではないことがわかりましたか?

0 投票する
1 に答える
573 参照

wcf - WCF - メッセージと MessageBuffer を閉じる

Msdn は次のように述べています。メッセージは、破棄時に本文の構築に使用されたオブジェクトも破棄します。

これから私が推測するのは、 Message を閉じていることであり、それが作成された MessageBuffer も閉じます。しかし、実際のコードではそうではありません。メッセージを閉じると、messagebuffer.closed が false のままになります。

メッセージ バッファとそのバッファから作成されたメッセージを閉じる方法は?

0 投票する
1 に答える
731 参照

c# - IServiceBehavior/IOperationBehavior を実装する属性から OperationContext を取得する方法

以下のように、WCF サービスを保護するために IServiceBehavior を実装する属性があります。

問題は、メッセージ ヘッダーを取得することです。現在の OperationContext を取得する必要がありますが、ApplyDispatchBehavior 内でそれを行う方法がわかりません。安全な方法でそれを行うと、機能します。