質問

ご協力ありがとうございます。

私は外部クライアント用のwcf Webサービスを作成しています。 クライアントはwsdlのコピーを要求しています。 現在、クライアントにサービスへのアクセスを提供できるようになるのを待っています。

サービスを実行しているローカルWebサーバーにアクセスするとき( http://localhost/Services.svc?wsdl )表示されます wsdl、提供されたデータにはメソッドシグネチャ(.svcコードビハインドから)が含まれています。 含まれているモデルオブジェクト(Customer、Order、ext)は含まれていません。

これらのオブジェクトを取得するには、表示されたデータで参照を見つけてURLに移動します

すべての必要な情報をクライアントに提供して、クライアントがwsdl全体を持つようにする メインスキーマとインポートされた各スキーマを提供する必要がありますか?

またはこれを達成する他の方法はありますか(クライアントがサーバーにアクセスする以外)

ie:それらすべてを1つのファイルにパッケージ化する方法はありますか?
(これらの各ファイルを抽出するために何かが利用できるようです?)

各ファイルに.zipを指定する場合、それで十分ですか?

ありがとう、 スティーブン

役に立ちましたか?

解決

WCFは、既にお気づきのとおり、WSDLとXSD(送信されるデータを記述するXMLスキーマ)をさまざまな部分にパッケージ化します。これらは、追加のhrefを使用してメインWSDLから参照されます。

またはさらに良い:" svcutil -metadata"を実行できます。サービス実装を含むDLLまたはEXEに対するコマンドラインでのコマンド-これにより、svcutilコマンドを実行するディレクトリに必要なすべてのファイル(通常は複数のWSDlと複数のXSD)が作成されます。これは通常、?wsdl URLからWSDLファイルとXSDファイルをつなぎ合わせるよりも信頼性の高い方法です(通常、1つまたは2つのファイルが欠落します)。

マーク

他のヒント

参照するすべてのサブWSDLとXSDを手動でダウンロードした場合、それは機能します。控えめに言っても面倒です。

検討する価値があるオプションは、Christian Weyerのを使用することです。 WCF拡張機能:WSDLをフラット化して、WCFがすべてを単一のファイルに生成し、クライアントに提供するようにします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top