如何从 WebConfig 设置 WCF URL

本文关键字:WCF URL 设置 WebConfig | 更新日期: 2023-09-27 18:33:36

我正在开发一个使用 WCF 的网站。我想做的是,每当更改 Web 服务 URL 时,我都必须能够在"我的项目"中进行更改,而不必停止此操作。因此,我想在项目的 webconfig 中设置一个键,并将该键值设置为 Reference.cs 中的 URI。我将项目中 Web 服务引用的状态更改为动态。但问题是,每当我更新网络服务时,uri 都会更改为如下所示的文本:

"global::Drd.Properties.Settings.Default.CoreBusiness_UbossProvisioning_ProvisioningServices;"。

我在这里错过了什么??谁能帮帮我...

如何从 WebConfig 设置 WCF URL

可以创建服务客户端或服务的实例,并且可以向构造函数提供 URL。这可能更容易。

我在这里错过了什么??

您可以在配置中设置 URL,当您要创建该服务的新实例时,您可以像这样设置端点地址

YouService.Endpoint.Address = new EndpointAddress("Address from your config.");

当您将 URL 行为设置为动态时,框架会为您执行所有操作:

  • web.config文件添加密钥(查找CoreBusiness_UbossProvisioning_ProvisioningServices
  • 生成Reference.cs以便它从配置中读取设置。

如果添加了对另一个程序集的引用,请将以下部分从其app.config复制到web.config(您可能需要更正命名空间,我只是猜测您的命名空间):

<configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
        <section name="Drd.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
</configSections>

<applicationSettings>
    <Drd.Properties.Settings>
        <setting name="CoreBusiness_UbossProvisioning_ProvisioningServices"
            serializeAs="String">
            <value>http://yourservice/address</value>
        </setting>
    </Drd.Properties.Settings>
</applicationSettings>

(此外,作为一般规则,切勿编辑生成的文件。

替代选项

如果你想在AppSettings中使用你的UbossBridgeURL,你可以创建一个派生的客户端类并在构造函数中设置它的URL(我假设生成的类是类ProvisioningServices):

public class MyProvisioningServices : ProvisioningServices
{
     public MyProvisioningServices()
     {
         Url = ConfigurationManager.AppSettings["UbossBridgeURL"];
     }
}

然后使用 MyProvisioningServices 类而不是 ProvisioningServices