問題タブ [servicecontract]

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 に答える
276 参照

wcf - コントラクト インターフェイスと DTO を使用せずにクライアントから WCF サービスを呼び出す

私は消費する必要があるサードパーティの wcf soap サービスを持っているので、メモリ内にコードを生成し、単純な入力引数でサービスを呼び出す方法を発見しました。複雑な議論についても同じことをしたいと思います。これを達成する方法について誰か助けてください。または、誰かが私を正しい方向に向けてください。

前もってありがとう、パヴァン

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

certificate - System.Data.Services.IRequestHandler コントラクトを持つ Data Services エンドポイントがエラーをスローする

System.Data.Services.IRequestHandler コントラクトでエンドポイントを作成しようとすると、次のエラーが発生します。

System.ServiceModel.Channels.Message 型のパラメーターまたは戻り値の型、または MessageContractAttribute と異なる型の他のパラメーターを持つ型があるため、操作 'ProcessRequestForMessage' を読み込むことができませんでした。System.ServiceModel.Channels.Message または MessageContractAttribute を持つ型を使用する場合、メソッドは他の型のパラメーターを使用してはなりません。

このエラーに関する他の 2 つの質問 ( hereおよびhere ) を見つけましたが、どちらにも満足のいく解決策はありませんでした。Northwind の例を引っ張ってきて、問題を再現できました。

簡略化された web.config ファイル:

.svc ファイル:

System.Data.Services.IRequestHandler コントラクトを独自のものに置き換え、エラー メッセージで問題となっているパラメーターを削除することで、エラーを取り除くことができます。

エラーをスローする組み込み ServiceContract:

エラーをスローしない私のServiceContract(ただし、すべてのDataService<T>機能を複製しなかったため、実際には機能しません):

組み込みの ServiceContract をエンドポイントで使用しようとすると、なぜこのエラーがスローされるのか混乱しています。私は Data Services にかなり慣れていないので、他の人には明らかな何かが欠けていると確信しています。

ありがとう

編集:
結局のところ、私の目標は証明書認証を使用することなので、この問題を回避しながらそれを行う方法があれば、私はそれを受け入れます。私はこのを使用しています。

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

wcf - 実際のサービスを実行せずにサービス契約を単体テストすることは可能ですか?

私はWCFサービス(実際にはサービスクライアントソリューション)を使用するアプリケーションに取り組んでいます。

発生した問題は、少しリファクタリングを行ったときに、一部のサービス契約が無効になったことが判明したことです。これは、サービスとアプリケーションが実行されるまで表示されませんでした。

ここで、サービスコントラクトをテストするだけのテストケースを作成して、それらが一致しない場合にテストケースが失敗するようにします。これは、実際のサービスを実行せずに実行できますか?

つまり、テストケースでサービス部分をシミュレートし、同時にクライアント呼び出しを呼び出す方法はありますか?

0 投票する
3 に答える
22983 参照

c# - 2 つの異なるサービス コントラクトで 2 つのエンドポイントを公開する WCF サービス

異なる URL で異なる機能を参照する 2 つのエンドポイントを公開するように構成しようとしている WCF サービスがあります。

必要なのはService1で、メソッド A、B、C、およびService2を公開し、メソッド D、E を公開します。localhost /WebServiceName/Service1/Service.svclocalhost/WebServiceName/Service2/Serviceの両方を参照できるようにしたい.svc .

localhost/WebServiceName/Service1/Service.svcを参照する他のアプリケーションは、メソッド A、B、および C を含むインターフェイスのみを参照する必要があります。Service2インターフェイスに関するものは何も表示されません。Service2 についても同様です。

ここまでで、WCF サービスにI_Service1I_Service2の 2 つのインターフェイスを定義しました。

次のように、web.config に 2 つのエンドポイントを追加しました。

エンドポイントで完全なアドレスを使用するという提案は、ここから来ています: IIS の下の複数のエンドポイント

それでも、 localhost/WebServiceName/Service1/Service.svcを参照できません。私は受け取ります:

localhost/WebServiceName/Service.svcを正常に参照でき、wsdl にはメソッド A、B、C、D、E が含まれています。しかし、これは私が望む動作では間違っているはずです。

見逃したものはありますか?

更新: この記事http://allen-conway-dotnet.blogspot.ro/2011/09/exposed-multiple-binding-types-for.htmlに従って、これらのエンドポイント用に 2 つの異なるコントラクト サービスを作成しました。しかし、現在、参照するとService1しか表示されません。Service2は明らかに存在しません (HTTP 404 エラー関連の問題が表示されます)。

構成は次のようになります。

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

wcf - クライアントサービス契約はWCF4.0でも自動生成されますか?

明らかに.NET2.0ランタイムバージョンにまでさかのぼるnet.tcpバインディングの例があります。WCF Net.TCPバインディングの例のクライアントコードには、「System.CodeDom.Compiler.GeneratedCodeAttribute( "System.ServiceModel"、 "2.0.xx")など」とマークされたインターフェイスがあります。

また、リクエストがサービス操作コントラクトのパラメーターをラップし、Responseクラスが結果/戻り値をラップするいくつかのRequest&Responseクラスも定義します。また、サービスのコントローラークラスも定義します。

現在、net.tcpバインディングを使用してwinformでホストされているWCFでは、これらのクラスを自分で自動生成する方法が見つかりませんでした。それは古いやり方なのだろうか?必要ですか?または、サービスを含むDLLへの参照をクライアントアプリに含めることはできますか?

いくつか変更を加えましたが、何も機能せず、これらの「自動生成された」クラスを削除できるかどうか疑問に思いました(または、そうでない場合は、どのように再生成できますか?)。

Windows7UltimateでVisualStudio2012 Ultimate for.NET4.5を使用しています。私のアプリケーションは、netTCPバインディングでWCFを使用する2つのWinForm(クライアントとサーバー)です。

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

c# - WCFプロトコルをクラスに変換する

同様のプロパティを持つWCFServiceContractがあります。

そして、私はクライアントで同じものが必要ですが、生成されたプロトコルは私に与えます:

get_P1()メソッドとset_P1(int)メソッドがあるため、毎回手動で別のクラスインターフェイスを作成する必要があります。

このようなクラスの作成を自動化するにはどうすればよいですか?

理由:私が編集したいのはインターフェースと実現だけです。他のすべてのものは自動的に生成されます。

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

wcf - WCF-サービス契約のインターフェースパラメータ

.NETクライアントで使用されるWCFサービスがあります。運用契約のパラメータとしてインターフェースを使いたい。このアプローチをテストできるようになるまでサービスを完全に実装していません。実行不可能であることが判明した場合は、多くの時間を費やしたくありません。

これはこれを行う正しい方法ですか?

私はこの投稿をチェックしました:

wcfサービスのパラメーターとしてクラスインターフェイスを使用する

私が達成しようとしていることのように見えますが、インターフェイスでKnownType属性を使用しようとするとコンパイルエラーが発生するため、代わりにServiceKnownType属性を使用しました。

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

wcf - WCF バインディング フィルター オプション

(OperationContract)あるコントラクトのいくつかのメソッドを 1ServiceContract)つのバインディングに公開し、同じコントラクトのWCF残りのメソッドを他のバインディングに公開することは可能ですか?(OperationContract)(ServiceContract)

0 投票する
3 に答える
769 参照

c# - WCF を使用して、信頼できるアセンブリだけが自分のサービスを呼び出すようにするにはどうすればよいですか?

次のように定義された単純なサービス契約があります。

net.pipe://これは、ローカル WCF サービス (アドレスを介してアクセス) に実装されます。

誰がサービスを呼び出しているかを知る必要があります。

IHello.Echo基本的に、セキュリティ上の理由から、署名されていないアセンブリからの呼び出しを拒否する必要があります。Hello信頼されていない呼び出し元がメソッドを使用できないようにする必要があります。

ぼんやりと覚えているのですが、古い .NET 1 リモート処理の時代には、スタックを調べて発信者の身元を確認できました。しかし、WCFでこれを行うにはどうすればよいですか?