使用svcutil为客户端代理生成xsd文件

时间:2012-01-09 08:08:16

标签: wcf proxy svcutil.exe

我正在尝试使用Svcutil从本地托管服务导出代理生成的元数据。我不想进入视觉工作室并点击“添加服务参考”,因为这是我的学习练习(!)

我使用svcutil如下:

  

Svcutil / d:c:\ temp / t:metadata http://localhost/IISCalculatorService/service.svc

然后生成两个WSDL文件:calculatorservice.wsdl和tempuri.org.wsdl。但是我还希望它能生成两个.XSD文件。如果没有这些.XSD文件,我就无法使用svcutil来生成客户端代码。

我在使用svcutil时是否遗漏了某些内容,或者是我的低调fauly?任何帮助表示赞赏。

这是服务的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>

2 个答案:

答案 0 :(得分:4)

使用disco.exe生成XSD文件。 http://msdn.microsoft.com/en-us/library/cy2a3ybs%28v=vs.80%29.aspx

打开Visual Studio命令提示符并编写disco http://localhost/IISCalculatorService/service.svc

答案 1 :(得分:3)

如果您正在寻找服务参考,可以试试这个

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

希望这会对你有所帮助。