如何在安装时为 WCF-Webservice 获取正确的 ServiceReference 及其端点地址

How to get the correct ServiceReference and its endpoint-address for a WCF-Webservice on installation

我在安装我的项目时遇到问题。它由三部分组成,客户端 WindowsForms 应用程序、WCF-Web 服务和数据库 (SQLExpress atm)。

目前,客户端和 Webservice 之间连接所需的端点地址和服务引用被硬编码到 WindowsForms 项目的 app.config 中,引用 Webservice 同一网络中的特定计算机运行 是这样的:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IWemosService" maxBufferPoolSize="2147483647"
                maxReceivedMessageSize="2147483647" />
        </basicHttpBinding>
    </bindings>
    <client>
        <endpoint address="http://ent-ga-04:8733/Design_Time_Addresses/WcfServiceWemos/WemosService/"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IWemosService"
            contract="ServiceReferenceWemos.IWemosService" name="BasicHttpBinding_IWemosService" />
    </client>
</system.serviceModel>
</configuration>

但是,在不同的设备上安装客户端和 Web 服务后,我当然必须更改这些值,以匹配新的设备和连接。我只是不知道该怎么做。你能帮帮我吗?

好的,我自己找到了答案。每个 C# 项目都带有一个 appconfig,在最终版本中,它被命名为 [projectname].exe.config。里面的文本格式类似于 xml,因此您可以读取、写入和更改其内容。这样,您可以更改端点、引用名称等。