2012-01-09 5 views
3

Svcutilを使用して、ローカルにホストされているサービスからプロキシを生成するためのメタデータをエクスポートしようとしています。私は、Visual Studioに入ると、これは私の一部に学習運動であるとして、「サービス参照の追加]をクリックしたくないsvcutilを使用してクライアントプロキシのxsdファイルを生成する

次のように私はsvcutilを使用しています(!):

Svcutil/D:C: \ temp/t:metadata http://localhost/IISCalculatorService/service.svc

これで、2つのWSDLファイルcalculatorservice.wsdlとtempuri.org.wsdlが生成されます。しかし、私はそれも2つの.XSDファイルを生成することを期待していた。これらの.XSDファイルがなければ、svcutilを使用してクライアントコードを生成することはできません。

私はsvcutilの使用で何かを見逃しているのですか、私の控えめなファウリーですか?どんな助けもありがたい。

はここでXSDファイルを生成するために、サービスのweb.config

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <compilation debug="true" targetFramework="4.0"/> 
    </system.web> 
    <system.serviceModel> 
     <behaviors> 
      <serviceBehaviors> 
       <behavior> 
      <serviceMetadata httpGetEnabled="true"/> 
        <serviceDebug includeExceptionDetailInFaults="false"/> 
       </behavior> 
      </serviceBehaviors> 
     </behaviors> 
     <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/> 
     <services> 
      <service name="CalculatorService.Calculator"> 
       <endpoint address="" binding="basicHttpBinding" contract="CalculatorService.Contracts.ICalculator" /> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
      </service> 
     </services> 
    </system.serviceModel> 
    <system.webServer> 
     <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 
</configuration> 
+1

svcutil を使用してプロキシを生成し、Add service referenceを使用しない場合はプロキシをプロジェクトで使用できます。 wsdlに関連するxsdの内容を検証するには、wsdlの指定されたURLからダウンロードしてプロジェクトに追加するだけです。 – Rajesh

答えて

3

、あなたはこれがあなたを助け、この

svcutil.exe http://localhost/IISCalculatorService/service.svc?wsdl 

希望を試すことができます。

+0

ありがとうございました。これを試してみて、svcutilから「メタデータドキュメントに有効な契約やサービスが含まれていません....」というエラーが表示される – SkeetJon

+0

http://localhost/IISCalculatorService/service.svcとhttp: IEの//localhost/IISCalculatorService/service.svc?wsdl?あなたのサービスをホスティングする際に問題があるかもしれません。 –

+0

はい、問題なく閲覧できます。サービスがsvcutil/wsdlに必要な情報を表示させないと思っていた – SkeetJon

4

使用disco.exeをです。 http://msdn.microsoft.com/en-us/library/cy2a3ybs%28v=vs.80%29.aspx

オープンのVisual Studioコマンドプロンプトと書きますが、直接サービス参照を探しているなら、ディスコhttp://localhost/IISCalculatorService/service.svc

+0

ありがとうございます。これにより、calculator.wsdl、services.disco、service.wsdlおよびresults.discomapが生成されます。 (no .xsdファイル)MSDNリンクでは、wsdl.exeを使用してクライアントコードを生成することを提案しています。つまり、svcutilを供給するために.XSD isntが必要ですか? – SkeetJon

+0

web.configでサービスが正しく設定されていない可能性がありますか? – SkeetJon

+0

達成したい目標は何ですか? C#プロキシを呼び出すだけでVS内でサービスリファレンスを追加したくない場合は、svcutil http://localhost/IISCalculatorService/service.svcを実行してください – KMan

関連する問題