問題タブ [wcf]
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 - ファイアウォールを介してクライアントにWCFプッシュ?
WCF サーバーは、変更について WCF クライアントにどのように通知しますか?も参照してください。(コメントや長いポーリングなど、単純なポーリングよりも優れたソリューション)
クライアント ファイアウォールを介して、WCF でプッシュ テクノロジを使用する必要があります。これは一般的な問題であるに違いなく、理論的には機能することを知っています (以下のリンクを参照)。
要件:
- WCF
- クライアントは、tcp ポート 80 (netTcpBinding) を介してサーバーに接続します。
- サーバーは不規則な間隔 (1 分から数時間) で情報をプッシュバックします。
- ユーザーがファイアウォールを構成する必要はありません。サーバーのプッシュは、すべての受信ポートが閉じられているファイアウォールを通過する必要があります。これには、同じ接続での TCP デュプレックスが必要です。クライアント ファイアウォールでポートを開く必要があるため、デュアル バインディングは機能しません。
- クライアントは定期的に (おそらく 15 分ごとに) ハートビートをサーバーに送信するため、サーバーはクライアントがまだ生きていることを認識します。
- サーバーは WAS を使用した IIS7 です。
解決策は二重 netTcpBinding のようです。この情報に基づいて:
しかし、動作するコード サンプルをまだ見つけていません。Microsoft の WCF サンプルから "Duplex" と "TcpActivation" のサンプルを組み合わせてみましたが、うまくいきませんでした。動作するサンプル コードを教えてください。または、小さなサンプル アプリを作成してください。どうもありがとう!
wcf - オブジェクト モデルの設計で従う WCF のベスト プラクティスは何ですか?
私は、少数の WCF アプリケーションがオブジェクトを「分割」することを選択していることに気付きました。つまり、プロジェクトには、ビジネス ロジックを実行する意味のあるクラス ライブラリに加えて、DataContracts/Members を含む DataObjects アセンブリがある場合があります。
これは不要なレベルの抽象化ですか? DataContract 情報を使用して既存のクラス ライブラリを調べてタグ付けすることに関連する固有の悪はありますか?
また、余談ですが、エラー状態をどのように処理しますか? サービスからスローされた例外 (InvalidOperation、ArgumentException など) は一般的に受け入れられていますか、それとも通常はそのあたりにレベルがありますか?
wcf - WCF サービスの終了と破棄
上のClose
メソッドは、 MSDN の概要がここICommunicationObject
にあるように、2 種類の例外をスローできます。メソッドがこれらの例外をスローする理由は理解できますが、サービス プロキシのメソッドが周囲のメソッドなしでメソッドを呼び出す理由は理解できません。あなたのメソッドは、例外をスローしないようにしたい唯一の場所ではありませんか?Close
Dispose
Close
try
Dispose
.net - wcfWebサービスインスタンスの作成中のInvalidOperationException
クラスライブラリから参照されるWCFWebサービスがあります。プロジェクトの実行後、クラスライブラリ内からサービスクライアントオブジェクトを作成すると、次のメッセージを含むInvalidOperationExceptionが発生します。
ServiceModelクライアント構成セクションでコントラクト'MyServiceReference.IMyService'を参照するデフォルトのエンドポイント要素が見つかりませんでした。これは、アプリケーションの構成ファイルが見つからなかったか、このコントラクトに一致するエンドポイント要素がクライアント要素で見つからなかったことが原因である可能性があります。
インスタンスの作成に使用しているコードは次のとおりです。
MyServiceClientが継承する場所
System.ServiceModel.ClientBase
どうすればこれを解決できますか?
注:同じサービスオブジェクトを作成して呼び出すだけの別のコンソールアプリケーションがあり、問題なく動作します。
wcf - WCF - ドメイン オブジェクトと IExtensibleDataObject
典型的なシナリオ。internally
サーバー ファームと複数の分散クライアントおよびローカル クライアントとの間の通信には、昔ながらの XML Web サービスを使用します。サードパーティは関与せず、自社と顧客が使用するアプリケーションのみを使用します。
XML
WS
現在、モデルへの移行を検討しWCF/object-based
ており、さまざまなアプローチを試しています。そのうちの 1 つは、ドメイン オブジェクト/集合体をワイヤ経由で直接転送し、それらの DataContract 属性を呼び出す可能性があります。
で Order プロパティを使用するIExtensibleDataObject
ことにより、単純なプロパティのバージョン管理の問題に対処できるはずです (すべてのクライアントを制御し、簡単に強制更新できることを思い出してください)。DataContract
DataMembers
DTOs
専用の転送専用のデータ転送オブジェクト ( ) をネットワーク経由で使用する必要があるとよく耳にします。
なんで?それでもそうする理由はありますか?サーバー側とクライアント側で同じドメイン モデルを使用します。もちろん、コレクションの事前入力などは、正しく「必要」と判断された場合にのみ行います。コレクション プロパティは、サービス ロケーターの原則と IoC を利用してNHibernate-based
、(サーバー側で) データを直接フェッチする"サービス" と、サーバー ファームWCF
と対話するクライアント側の "サービス" クライアントのいずれかを呼び出します。WCF
では、なぜ を使用する必要があるのDTOs
でしょうか。
wcf - WCF でクライアント資格情報を使用して一度だけ認証するにはどうすればよいですか?
WCF で構築された API を使用するときに認証が 1 回だけで済むようにするための最善の方法は何ですか?
私の現在のバインディングと動作は以下のとおりです
次は、クライアント アプリで認証に使用しているものです (現在、WCF を呼び出すたびにこれを行う必要があります)。
私がやりたいのは、これらの資格情報を使用して API で認証し、クライアント アプリケーションが Web サービス プロジェクトを使用している間、何らかのタイプのトークンを取得することです。私はこれを私のために確立したと思いましたか?
wcf - WCF サービスはいくつの ServiceContract を持つことができますか?
WCF サービスはいくつの ServiceContract を持つことができますか?
具体的には、ServiceContract はインターフェイスの属性であるため、1 つの WCF Web サービスにコーディングできるインターフェイスの数はいくつですか? 一対一ですか?
コントラクトを複数の Web サービス間で分離することは理にかなっていますか?
wcf - WCFサービスドメインモデルを使用した遅延読み込み?
ドメインモデルをWCFサービスAPIにプッシュすることを検討しており、このタイプのセットアップでの遅延読み込み手法についていくつか考えてみたいと思います。
このアプローチを取るときに何か提案はありますか?
この手法を実装してアプリにステップインすると、サーバーがリストを返す直前に、遅延読み込みされるはずの各プロパティの取得にヒットします...したがって、読み込みが熱心になります。この問題を説明したり、解決策を提案したりできますか?
編集:XMLIgnore属性を使用できるようですので、シリアル化中には見られません..まだこれを読んでいます
wcf - WCF を使用してサービスをバージョン管理するためのベスト プラクティスは?
私は自分のモデルを WCF でほぼ独占的に使用し始めており、これらのサービスを徐々にバージョン管理するための実用的なアプローチを取得したいと考えていました。誰かが私を正しい方向に向けることができますか?
wcf - WCF サービスを単体テストするにはどうすればよいですか?
データベースやその他のアプリケーションやサービスへのアクセスを可能にする DLL がたくさんあります。
これらの DLL を、クライアントが使用する薄い WCF サービス レイヤーでラップしました。
WCF サービス層のみをテストする単体テストを作成する方法が少しわかりません。DLL の単体テストと WCF サービスの統合テストだけを作成する必要がありますか? 知恵をいただければ幸いです...ユニットテストが実際にデータベースに送られる場合、実際には真のユニットテストではないことを知っています。また、単体テストで WCF サービス ホストを実際にテストする必要がないことも理解しています。
そのため、何をどのようにテストするかについて正確に混乱しています。