5

WSDL を生成してから、WSDL 内で見つかった各 XSD をクライアントで手動で生成しようとしました。このサービスは現在、私のローカルホストのみにあり、まだ公開されていません。

クライアントで次のエラーが発生しています。

ドキュメントは理解されましたが、処理できませんでした。WSDL ドキュメントには、解決できなかったリンクが含まれています。「http://localhost:xxxx/MyService.svc?xsd=xsd0」のダウンロード中にエラーが発生しました。リモート サーバーに接続できません ターゲット マシンがアクティブに拒否したため、接続できませんでした 127.0.0.1:xxxx

サービスの WSDL と XSD をどのように生成して共有すれば、(サービス atm にアクセスせずに) クライアントのコーディングを開始できるでしょうか?

編集 WSDL/XSD のこれらに関連する問題

WSDL

<xsd:schema targetNamespace="http://tempuri.org/Imports">
    <xsd:import schemaLocation="http://localhost:xxxx/MyService.svc?xsd=xsd0" 
           namespace="http://tempuri.org/"/>
    <xsd:import schemaLocation="http://localhost:xxxx/MyService.svc?xsd=xsd1"  
           namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>
    <xsd:import schemaLocation="http://localhost:xxxx/MyService.svc?xsd=xsd2" 
           namespace="**MYNAMESPACE**"/>
</xsd:schema>

XSD

<xs:import schemaLocation="http://localhost:xxxx/MyService.svc?xsd=xsd1" 
  namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>

編集 2: おかげ@The Indian Programmmerで、このコマンドでプログラムするプロキシ クラスを生成できました。

"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\svcutil.exe" -noconfig -namespace:*,SERVICE.INTERFACE.NAMESPACE -serializer:datacontractserializer https://My-PC/SvrLocation/MyService.svc?wsdl (ローカル IIS でホスト)

4

2 に答える 2

7

まず、サービスを実行して wsdl を参照します。

次に、WSDL 内のすべての xsd を個別に参照し、xsd ファイルとして保存します。

wsdl を新しい xsd 相対パスで更新します。xsd のリンク全体をその名前に置き換えるだけです。

Replace http://localhost:xxxx/MyService.svc?xsd=xsd0 with respective FileName

<xsd:schema targetNamespace="namespace">
<xsd:import schemaLocation="Messages.xsd" namespace="namespace"/>
<xsd:import schemaLocation="DomainTypes.xsd" namespace="namespace"/>
<xsd:import schemaLocation="StreamBody.xsd" namespace="namespace"/>
</xsd:schema>

更新 : プロキシ ファイルの生成方法

svcutil  -noconfig -namespace:*,ServiceNameSpace -serializer:datacontractserializer  "Service.wsdl" "DomainTypes.xsd" "Messages.xsd" "StreamBody.xsd"

すべてのファイルは同じフォルダーにある必要があります。

于 2012-10-31T09:30:15.140 に答える
0

ローカルホストから wsdl ファイルをダウンロードできます。これを行うには、「http://localhost:xxx/MyService.svc?wsdl」に移動します。
この wsdl に基づいて、wsdl ツールを使用してサービス プロキシを生成できます。
プロキシを生成する方法の詳細については、この質問を参照してください

于 2012-10-31T09:32:53.167 に答える