古いWSDLファイルがあり、このWSDLファイルに基づいてサーバーを作成したいとします。WSDLファイルを使用してWCFサービスを作成する方法(コールしない)
WSDLはASMXから生成されます(わたしはわかりませんが)。
どうすればこの問題を解決できますか? OPは、彼がWSDLに基づいてクライアントを作成するために必要な考え
古いWSDLファイルがあり、このWSDLファイルに基づいてサーバーを作成したいとします。WSDLファイルを使用してWCFサービスを作成する方法(コールしない)
WSDLはASMXから生成されます(わたしはわかりませんが)。
どうすればこの問題を解決できますか? OPは、彼がWSDLに基づいてクライアントを作成するために必要な考え
svcutilを使用すると、WSDLからインターフェイスとクラス(データコントラクト)を作成できます。
svcutil your.wsdl (or svcutil your.wsdl /l:vb if you want Visual Basic)
これは、すべての必要な項目が含まれているのC#(またはVB.NETで「your.vb」)に「your.cs」というファイルを作成します。
サービスインターフェイス(IServiceInterface)またはいくつかのサービスインターフェイスを実装するクラス "MyService"を作成する必要があります。これはサーバーインスタンスです。
ここでは、クラス自体は実際にはまだ役に立ちません。サービスをどこかにホストする必要があります。サービスをホストする独自のServiceHostインスタンスを作成するか、エンドポイントなどを構成するか、IIS内でサービスをホストする必要があります。
svcutil.exeを使用してクライアントコードを生成できます。これには、サービス契約の定義と、必要なデータ契約および障害契約が含まれます。
次に、サービスコードを実装するクラスであるクライアントコードを削除します。その後、あなた自身のサービスでそれらを実装する必要があります。
検索対象を知っていれば、そこには優れたリソースがあります。 "Contract First"とWCFを試してみてください。または「WSDL First」およびWCF。ここで
は選択です:
* WSDL-First *の基本的な概要に従う人には、次のようなコメントを書き留めておいてください。 ReplyAction = "*" 'あなたはそれを取り除く必要があるようです。そのコメントからその理由を説明するトレイルがありますが、私はそれを読んでいません。 –
使用svcutilとの契約、まず設計を可能にするのVisual Studioに。 exeで/sc
に切り替えるWCF契約を抹消する。これにより、プロジェクトに追加できるコードファイルが作成されます。これには、サービスを作成するために必要なすべてのインタフェースとデータ型が含まれます。 /o
スイッチを使用して出力場所を変更するか、svcutil.exeを実行したフォルダ内のファイルを見つけることができます。デフォルトの言語はC#ですが、私は(これを試したことはありません)/l:vb
を使ってこれを変更できるはずだと思います。
svcutil /sc "WSDL file path"
WSDLにサポートされているXSDファイルがある場合、WSDLの後に引数として渡します。
svcutil /sc "WSDL file path" "XSD 1 file path" "XSD 2 file path" ... "XSD n file path"
あなたのサービスである新しいクラスを作成し、今作成した契約インタフェースを実装します。
他の人のWSDLの実装方法に関するMSDN(https://msdn.microsoft.com/en-us/library/ms735109(v=vs.110).aspx) – sq33G
Visual Studioで "サービス参照の追加" ツールを使用して、などのアドレスを挿入することができます。
ファイル:///path/to/wsdl/file.wsdl
そして、正しくロードされます。
私はsvcutilで同じことを試みましたが、実際にはフォールトでは成功しませんでした。私の問題にいくつかの提案がありますか:http://goo.gl/dlen – Juri
"svcutil your.wsdl your.xsd"は私の仕事に必要なものです!ありがとう! –
svcutilが好きな形式でwsdlとxsdをダウンロードする方法については、このSOの答えをご覧ください。 http://stackoverflow.com/questions/286657/what-is-the-best-way-to-download-all-of-the-wsdl-files-exposed-by-a-wcf-service –