【问题标题】:Change WSDL for WCF Service based on an environment根据环境更改 WCF 服务的 WSDL
【发布时间】:2019-11-26 17:10:00
【问题描述】:

我在本地机器上有WCF 服务和.net 客户端。我为客户生成了wsdl。它有一堆文件,如.svcinfo, .wsdl, .xsd, .svcmap, .cs。部分文件有服务地址https://localhost:12345/foo/bar.svc

最终,服务和客户端将部署到测试,然后部署到生产。那时我是否需要为客户端重新生成wsdl 以在.svcinfo, .wsdl, .xsd, .svcmap, .cs 文件中反映正确的url?还是修改客户端配置文件中的endpoint地址就够了?

【问题讨论】:

    标签: .net wcf wsdl wcf-endpoint


    【解决方案1】:

    你完全没有必要做这样的事情。我们通常通过其元数据端点公开有关 WCF 服务的元数据信息。然后客户端可以通过添加服务引用来生成客户端代理类,代理类可以实现对服务的调用。

    <services>
          <service name="WcfService1.Service1">
            <endpoint address="" binding="wsHttpBinding" contract="WcfService1.IService1"></endpoint>
            <!--metadata service endpoint-->
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <!--Enable service metadata publish-->
              <serviceMetadata/>
              <serviceDebug includeExceptionDetailInFaults="false" />
            </behavior>
          </serviceBehaviors>
    </behaviors>
    

    客户端。

    可选的,我们也可以以HTTP/https的形式发布服务数据,只需配置下面的属性即可。

      <!--Enable service metadata publish-->
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
    

    客户端可以直接下载WSDL/SingleWSDL文件,手动生成客户端代理类。

    如果有什么我可以帮忙的,请随时告诉我。

    【讨论】:

      猜你喜欢
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-13
      相关资源
      最近更新 更多