問題タブ [wcf-proxy]
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-proxy - WCFプロキシのnullリターンの問題の処理
サードパーティのWebサービスに接続されたWCFクライアントプロキシがあります。プロキシは、機能以外のほとんどすべてで正常に機能します。
この関数は、ASMXプロキシで問題なく機能します。
サービストレースログを追加しましたが、戻ってきたサービスからの応答を確認できます。プロキシのみがnullを返します。
これで、プロキシに障害があることが確実にわかりました。
ここからどこへ?
解決策 問題が見つかりました。WCFは、ASMXプロキシよりも寛容ではありません。サービスWSDLは、返されたオブジェクトが「データ」と呼ばれ、返される実際のxmlが「結果」と呼ばれることを指定します
だから、それは素晴らしいガチョウの追跡でした!私はこの問題で4時間を無駄にしたと思います!
static - 共有静的 WCF プロキシ クライアントを使用する際の落とし穴は何ですか?
高スループット アプリケーションに共有 (静的読み取り) WCF プロキシ クライアントを使用することを検討しています。これを行うとパフォーマンスが向上すると思いますが、まだベンチマークしていません。
このアイデアには深刻な落とし穴がありますか?
私の調査から、障害状態の処理に問題があることがわかります。この状態が他の保留中の要求にどのような影響を与えるかは明確ではありません。
WCF プロキシを障害状態から回復した経験のある人はいますか?
前もって感謝します!
unity-container - オブジェクトを破棄する Unity
ティアダウンの一部として、Unity にプロパティが注入されたオブジェクトを破棄させる方法はありますか?
背景は、ASP.NET MVC 2、Unity、および WCF を使用するアプリケーションに取り組んでいることです。Unity を使用してコントローラーをインスタンス化する独自の MVC コントローラー ファクトリを作成し、コントローラーのパブリック プロパティの [Dependency] 属性を使用して WCF プロキシを挿入します。ページのライフ サイクルの最後に、コントローラー ファクトリの ReleaseController メソッドが呼び出され、IUnityContainer.Teardown(theMvcController) が呼び出されます。その時点で、コントローラーは期待どおりに破棄されますが、注入された wcf プロキシも破棄する必要があります。(実際には、Dispose ではなく Close や Abort を呼び出す必要がありますが、それは後の問題です。)
もちろん、コントローラーの Dispose メソッドをオーバーライドして、そこにあるプロキシをクリーンアップすることもできますが、コントローラーに、注入されたインターフェイスのライフサイクルや、WCF プロキシを参照していることさえ知らなくて済むようにしたくありません。
このために自分でコードを書く必要がある場合、最適な拡張ポイントは何でしょうか? ポインタをいただければ幸いです。
wcf - 異なる Web サービス プロキシ クラス間でクラスを共有する
私は、basicHttpBinding を使用して .net 3.5 フレームワークで wcf サービスを作成し、IIS 6.0 (Windows 2003) でホストしています。
私は 3 つの異なるサービス (AuthenticationSerice、Dataserviceservice、ReportingService) を持っていますが、これらのサービス間で共有されるクラスはほとんどありません。
私の問題は、3 つの wcf/web サービスのプロキシ クラスを生成すると、3 つの異なるプロキシ クラスが生成されることです (共通のクラスはプロキシ クラス間で共有されません)。
クラス タイプを共有する 3 つのすべての wcf/web サービスのプロキシ クラスを生成することは可能ですか?
注: クライアントは .net 2.0 フレームワークで開発されています。そのため、WSDL を使用してプロキシ クラスを生成する必要があります。
nRk
wcf - Silverlight 3 での WCF サービス クライアント プロキシの適切なライフサイクルはどのようなものですか?
Web で自分の質問に対するさまざまな回答を見つけています。質問を詳しく説明するには:
- サービス クライアント プロキシは、非同期呼び出しごとに 1 回、または Silverlight アプリごとに 1 回インスタンス化する必要がありますか?
- サービス クライアント プロキシを明示的に閉じる必要がありますか (WCF サービスを同期的に呼び出す ASP.NET MVC アプリケーションで行うように)。
多くのブロガーとフォーラムの投稿者が互いに矛盾しているのを見つけました。これに完全に答えるために、決定的な情報源または証拠を誰かが指摘できますか?
windows-services - Windows サービスが開始してから停止する
退職した開発者から継承した Windows サービスがあります。Windows サービスは、QA 環境で正常に実行されています。サービスをインストールしてローカルで実行すると、次のエラーが表示されます。
サービスを開始できません。System.InvalidOperationException: 要求されたパフォーマンス カウンターはカスタム カウンターではありません。ReadOnly として初期化する必要があります。
コードは次のとおりです。
wcf - WCF / ASMXプロキシを閉じないと、どれほど悪いですか?
そのため、誰か(私でした)は、WCFプロキシを使用した後に閉じる必要があることに気づいていませんでした。
これはどれくらい悪いですか?どのような問題を引き起こす可能性があります。
ガベージコレクションのためにリソースを閉じるのが遅れているだけですか?それとも、アプリプールのリサイクルが早すぎるなどのことを本当に心配する必要がありますか?
私は実際、この問題のあるWCFプロキシよりもはるかに多くのASMXを持っています。したがって、同じ質問がASMXにも当てはまります。
明らかに、これを知ったので、徐々に修正していきますが、これが実際にどれほど悪いかについての入力をいただければ幸いです。
c# - WCFプロキシ インターフェイスで非同期メソッドが生成されない
WPF コントロールを更新していて、UI スレッドから更新されていることを確認する必要があるため、WCF サービス クライアント プロキシで<operation>Asnyc
はなくメソッドを使用したいと考えています。Begin<operation>/End<operation>
Dispatcher クラスを使用して UI スレッドのアイテムをキューに入れることができましたが、それは私が求めていることではありません..
非同期操作を生成するようにサービス参照を構成しましたが、インターフェイスではなく、プロキシの実装でメソッドのみを生成します。インターフェイスには、同期メソッドとBegin<operation>/End<operation>
メソッドのみが含まれます。
これらのメソッドがインターフェイスで生成されないのはなぜですか?また、これを行う方法はありますか?または手動で追加するために派生インターフェイスを作成する必要がありますか?
.net - Web クライアントを WCF に移行する。WCF クライアントは、メソッドのパラメーター名をシリアル化します
Web サービス/Web クライアント アーキテクチャから WCF アーキテクチャへの移行に苦労しています。オブジェクトは非常に複雑で、多数のネストされた xsd とさまざまな名前空間があります。プロキシ クラスは、30 以上の webmethods を持つ元の wsdl に Web 参照を追加し、不足している SOAPFault オブジェクトを生成するために xsd.exe を使用することによって生成されます。私のパイロット WCF サービスは、元のメソッドの 1 つの正確な構文に一致する 1 つの webmethod のみで構成されています。1 つのオブジェクトをパラメーターとして、1 つの他のオブジェクトを結果値として返します。XMLSerializerFormat
属性を使用して、これらのプロキシ クラスを使用して WCF インターフェイスを作成しましServiceContract
た。OperationContract
Action
ReplyAction
、すべて適切な名前空間を持つ。SoapUI を使用して着信クライアント メッセージを作成します。元の WSDL ファイルからプロジェクトを生成し (SoapUI プロジェクトに 30 以上のメソッドを持たせる)、実装された WebMethod で新しい Request を 1 つ作成し、URL を wcf Web サービスに変更してメッセージを送信しました。で (Reply-)Action が指定されているためOperationContractAttribute
、メッセージは実際に受信され、オブジェクトに適切に逆シリアル化されます。
これまで (40 時間のグーグル検索) を実現するために、多くのフラストレーションから、WCF の「ラップされたタグ」が削除され、ネストされた型の名前空間が修正され、生成された wsdl get がフラット化されたカスタム エンドポイントを使用することになりました (より良いためにMS VisualStudio 以外のツールとの互換性があります)。
インターフェイス コードは次のとおりです。
コードで Webclient を使用してメッセージを送信すると、すべてが機能します。私の問題は、WCF クライアントを使用する場合です。私ChannelFactory<IOntvangAsynchroon>
はメッセージを送信するために使用します。しかし、生成された xml は異なって見えます: メソッドのパラメーター名が含まれています! これを理解するのに多くの時間がかかりましたが、次のようになります。
正しい xml (剥がされた石鹸の封筒):
不適切な XML:
zakLk011
要素に注意してください。私のインターフェイスのメソッドのパラメーターの名前です! だから今は ですzakLk011
が、私のパラメータ名が だったときzakLk01
、xmlには上記のタグの魔法のような複製が含まれているように見えましたが、名前空間はありませんでした。もちろん、それがパラメーター名であることに気付く前に、何が起こっていたのかに夢中になっていることを想像できます!
実際に WCF サービスを作成しましたが、WCF クライアントを使用してメッセージを送信できなくなりました。明確にするために: メソッドは Web サービスで WCF クライアントを使用して呼び出されますが、パラメーター オブジェクトは空です。カスタム エンドポイントを使用して着信 xml をログに記録しているため、メッセージが正常に受信されていることがわかりますが、構文が間違っているだけです。
WCF クライアント コード:
私は生成されたクライアントを使用していません。慣れているように、Web サービス (共有ライブラリ) を参照するだけです。
編集:サービス参照を生成すると、重複したクラスが生成されます(理由がわからない..)。ただし、これらの重複が削除されると、クライアントは正しい xml でメッセージを送信します。しかし、私のアーキテクチャには共有ライブラリが必要なので、これは役に立ちません。
誰でも私を助けてもらえますか?これについては何もグーグルできません...