我正在尝试使用Svcutil导出元数据以通过本地托管服务生成代理。我不想进入Visual Studio并单击“添加服务参考”,因为这是我的学习练习(!)

我正在使用svcutil,如下所示:


Svcutil / d:c:\ temp / t:元数据http://localhost/IISCalculatorService/service.svc


然后,这将生成两个WSDL文件,calculatorservice.wsdl和tempuri.org.wsdl。但是我期望它也可以生成两个.XSD文件。没有这些.XSD文件,我将无法使用svcutil生成客户端代码。

我在使用svcutil时是否缺少某些东西?还是我的理解不足?任何帮助表示赞赏。

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

最佳答案

如果您直接寻找服务参考,可以尝试一下

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


希望对您有帮助。

10-06 12:17