web-dev-qa-db-ja.com

SvcUtil.exeでWCFサービスを生成する方法

SvcUtil.exeを使用してIClassName.csファイルをwsdlファイルから生成していますが、正常に機能しています。私の問題は、SvcUtil.exeのコマンド引数を使用してClassName.svcファイルを生成する方法がわからないことです。

SvcUtil.exeを実行した後、Visual Studioから作成したときのようにWCFサービスを取得したいと思いますWizardすべてのクラス* .svc、*。cs、およびインターフェイスを含みます。

ありがとう、Skrch

7
Skrch

まず、プロキシクラスを生成するには、サービスを起動して実行する必要があります。したがって、このユーティリティを使用する前に、サービスが問題なく実行されていることを確認してください。

サービスの状態を確認した後、Visual Studioコマンドプロンプトに移動し、次のコマンドを実行します。

svcutil http://localhost/MyService/ClassName.svc /Language=c#
/t:Code /out:ClassNameProxy.cs /config:ClassNameProxy.config

上記のコマンドでは、サービスURL(http://localhost/MyService/Service1.svc)サービスのURL。私のサービスはc#.netで開発されているため、/ Language = c#フラグを使用して、同じ言語でプロキシを生成することを選択します。

/ t:codeは、出力をコードとして生成することを指定します。

/out:ClassNameProxy.cs /config:ClassNameProxy.configパラメーターは、これらのパラメーター値で指定されたファイルに名前を付けるようにユーティリティーに指示します。コマンドを実行すると、ツールは出力ファイルと構成ファイルを生成します。

その後、ClassNameProxy.csファイルをプロジェクトに含めてClassNameProxy.configファイルを開き、エントリをweb.configファイルにコピーします。また、ClassNameProxy.vbファイルを更新し、プロジェクトで使用しているものに従ってnamespaceを更新する必要があります。その後、コード内でサービスを簡単に参照し、オペレーションを呼び出すことができます。

18

ツールの使用例

svcutil http://service/metadataEndpoint-実行中のサービスまたはオンラインメタデータドキュメントからクライアントコードを生成します。

svcutil *.wsdl *.xsd /language:C#-ローカルメタデータドキュメントからクライアントコードを生成します。

svcutil /dconly *.xsd /language:VB-ローカルスキーマドキュメントからVisualBasicでデータコントラクトタイプを生成します。

svcutil /t:metadata http://service/metadataEndpoint-実行中のサービスからメタデータドキュメントをダウンロードする

svcutil myAssembly.dll-アセンブリのサービス契約および関連するタイプのメタデータドキュメントを生成する

svcutil myServiceHost.exe /serviceName:myServiceName-サービス、およびアセンブリ内のすべての関連するサービスコントラクトとデータタイプのメタデータドキュメントを生成します

svcutil myServiceHost.exe/dconly-アセンブリ内のデータ型のメタデータドキュメントを生成する

svcutil /validate /serviceName:myServiceName myServiceHost.exe-サービスのホスティングを確認する

svcutil /t:xmlserializer myContractLibrary.exe-アセンブリのサービスコントラクトで使用されるXmlSerializer型のシリアル化型を生成します

13
bijayk

まだ答えを探していて2012バージョンが動作しない場合、Visual Studio 2015および.Net 4.5はsvcutil.exeツールを更新して/ serviceContractスイッチを使用し、.svcサービスとして実装できるクラスを生成します。元のXSDによっては、/ syncOnly/wrapped/messageContractスイッチも必要になる場合があります

4
Dean

ビルドタスクとしてVisual Studio 2012に統合された.NET 4.5Contract First Toolは、必要なサービスファイルの生成に役立つと思います。

多くの場合、サービス契約は既存のサービスから作成する必要があります。 .NET Framework 4.5では、contract-firstツールを使用して、既存のサービスからデータコントラクトクラスを自動的に作成できます。コントラクトファーストツールを使用するには、XMLスキーマ定義ファイル(XSD)をローカルにダウンロードする必要があります。ツールはHTTP経由でリモートデータコントラクトをインポートできません。

http://msdn.Microsoft.com/en-us/library/hh674270(v = vs.110).aspx

1
Seymour

Svcutil.exeは、サービスのWebサービス記述言語(WSDL)に基づいてサービスクライアントプロキシを生成します。

Visual Studioコマンドプロンプトを開き、コマンドを実行します

svcutil http://localhost/MyService/Service.svc  /Language=c#  /t:Code  /out:C:\Service\ServiceProxy.cs /config:C:\Service\ServiceProxy.config

c:\ Serviceフォルダーに2つのファイル、プロキシファイルと構成ファイルを生成します。

詳細 こちら

0
Rajeev Tiwari