如何从 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;
"。
我在这里错过了什么??谁能帮帮我...
可以创建服务客户端或服务的实例,并且可以向构造函数提供 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
。