プロジェクトで wcf サービスを作成し、別のプロジェクトでサービス参照を追加すると、見たものの背後で何が起こるか知りたいだけです。つまり、メモ帳ファイルにサービス コードを記述し、コマンド ラインを使用して svcutil.exe を実行しています。私の質問は、メタデータをエクスポートおよびインポートするために、両方の側 (サービス側とクライアント側) で svcutil を実行する必要がありますか? また、svcutil.exe によって生成されるファイルは最小限です。
友よありがとう。
プロジェクトで wcf サービスを作成し、別のプロジェクトでサービス参照を追加すると、見たものの背後で何が起こるか知りたいだけです。つまり、メモ帳ファイルにサービス コードを記述し、コマンド ラインを使用して svcutil.exe を実行しています。私の質問は、メタデータをエクスポートおよびインポートするために、両方の側 (サービス側とクライアント側) で svcutil を実行する必要がありますか? また、svcutil.exe によって生成されるファイルは最小限です。
友よありがとう。
SvcUtil
プロキシ クラスと、サービスが使用するバインディング、セキュリティ資格情報、読み取りクォータ、サービスのアドレス、コントラクトなどを指定する構成ファイルSvcUtil
が生成され、メタデータ、シリアル化コードなどが生成されます。サービス マシンで実行するSvcUtil
と、提供される 2 つのファイル (プロキシ クラスと構成ファイル) を使用して、異なるマシンでクライアントを作成できます。
通常、これらは Visual Studio の「サービス参照の追加」機能によっても生成されるため、実際に SvcUtil を使用する必要はありません。Visual Studio は実際にはSvcUtil
バックグラウンドでクライアント プロキシを生成するために使用するため、クライアント プロキシの生成に Visual Studio を使用する方が少し面倒ではないようです。
SOA の用語では、SvcUtil または Visual Studio を使用して手動でクライアントを生成することは、これらの etools が結合しすぎて不要なコードを生成し、柔軟性があまり得られないため、良い方法ではないと主張する人もいます。サービス、契約、プロキシなどのアセンブリを分離し、ChannelFactory
クラスを使用してサービス チャネルを作成できます。この素晴らしい記事は、クライアント プロキシを生成する後者の方法の支持者です。