c# - 如何获取app.config中的服务基地址?

标签 c# xml wcf app-config servicemodelex

我想从 C# 获取 app.config 文件中指定的基地址,即“http://localhost:8733/SmgService/ ”。

我查看了微软的文档,但是目前我不知道如何从后面的 C# 代码访问这个基址。如有任何帮助,我们将不胜感激。

 <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
          <add key="aspnet:UseTaskFriendlySynchronizationContext"value="true" />
      </appSettings>
      <system.web>
        <compilation debug="true" />
      </system.web>
      <system.serviceModel>
        <services>
              <service name="SmgService.PrintService">
                <host>
                  <baseAddresses>
                    <add baseAddress = "http://localhost:8733/SmgService/"/><!--i need this address-->
                  </baseAddresses>
                </host>
                <endpoint address="" binding="basicHttpBinding" contract="SmgService.IPrintService">
                  <identity>
                    <dns value="localhost"/>
                  </identity>
                </endpoint>
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
              </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
              <serviceDebug includeExceptionDetailInFaults="False" />
            </behavior>
          </serviceBehaviors>
        </behaviors>
  </system.serviceModel>

</configuration>

最佳答案

已解决

 ServicesSection servicesSection = ConfigurationManager.GetSection("system.serviceModel/services") as ServicesSection;
        foreach (ServiceElement service in servicesSection.Services)
        {
            if (service.Name == "SmgService.PrintService")
            {
                foreach (BaseAddressElement item in service.Host.BaseAddresses)
                {                       
                    MessageBox.Show(item.BaseAddress.ToString());
                }

            }
        }







    string resultBase = "";
        ServicesSection services = ConfigurationManager.GetSection("system.serviceModel/services") as ServicesSection;
        foreach (ServiceElement service in services.Services)
        {
            if (service.Name == whichService)
            {
                BaseAddressElementCollection baseElement = service.Host.BaseAddresses;
                foreach (BaseAddressElement item in baseElement)
                {
                    resultBase = item.BaseAddress;
                }

            }
        }
        return resultBase;

关于c# - 如何获取app.config中的服务基地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56036892/

相关文章:

c# - 在 Visual Studio 2010 中调试时如何设置 IIS?

c# - .net 中 ObservableCollection 的用途是什么?

c# - 未初始化的浮点变量,重新定义不确定的行为

xml - 引用节点集而不复制它

java - Android布局——两个属性相似的相对布局,但第二个连续更大

javascript - 使用 javascript 遍历 XML 节点

wcf - 在 .net/WCF 中检测连接速度/带宽

c# - ObservableCollection 与异步 Web 服务调用的普通列表

c# - 如何在防火墙后设置安全的 WCF 服务?

c# - System.Diagnostics.Process - Del 命令