C# 如何从WebConfig设置WCF URL
我在一个使用WCF的网站上工作。我想做的事情是,无论何时更改WebService URL,我都必须能够在我的项目中进行更改,而不必停止此操作。所以我想在我的项目的webconfig中设置一个键,并在Reference.cs中将该键值设置为URI。我将项目中WebService引用的状态更改为动态。但问题是,每当我更新Web服务时,uri都会更改为如下所示的文本: “C# 如何从WebConfig设置WCF URL,c#,wcf,C#,Wcf,我在一个使用WCF的网站上工作。我想做的事情是,无论何时更改WebService URL,我都必须能够在我的项目中进行更改,而不必停止此操作。所以我想在我的项目的webconfig中设置一个键,并在Reference.cs中将该键值设置为URI。我将项目中WebService引用的状态更改为动态。但问题是,每当我更新Web服务时,uri都会更改为如下所示的文本: “global::Drd.Properties.Settings.Default.CoreBusiness\u ubossprovis
global::Drd.Properties.Settings.Default.CoreBusiness\u ubossprovisiongservices;
”
我在这里错过了什么??任何人都可以帮我…你可以创建你的服务客户端或你的服务的实例,你可以向构造函数提供URL。这可能更容易 我在这里错过了什么 您可以在配置中设置URL,当您要创建该服务的新实例时,您可以像这样设置端点地址
YouService.Endpoint.Address = new EndpointAddress("Address from your config.");
当您将URL行为设置为“动态”时,框架将为您执行所有操作:
- 将密钥添加到
文件(查找web.config
)CoreBusiness\u UbossProvisioning\u ProvisioningServices
- 生成
,以便从配置中读取设置Reference.cs
app.config
复制到您的web.config
(您可能需要更正名称空间,我只是猜测您的名称空间):
然后使用
myprovisiongservices
类,而不是provisiongservices
我是新来的,所以请您将其细分给我。。这是构造函数`string url=System.Configuration.ConfigurationManager.AppSettings[“UbossBridgeURL”];如果((this.IsLocalFileSystemWebService(this.Url)==true)){this.UseDefaultCredentials=true;this.useDefaultCredentialsSetExplicit=false;}否则{this.useDefaultCredentialsSetExplicit=true;}`在构造函数中有一个指定URl的部分。。我在那里设置了配置值,但当您更新web服务时,它会达到我上面指定的默认值。。。问题是我无法识别这个.Url的位置以及它如何连接到Web服务。:'(是的,我有..`public ProvisioningServices(){this.Url=System.Configuration.ConfigurationManager.AppSettings[“UbossBridgeURL”];如果((this.IsLocalFileSystemWebService(this.Url)==true)){this.UseDefaultCredentials=true;this.useDefaultCredentialsSetExplicit=false;}else{this.useDefaultCredentialsSetExplicit=true;}}`。但是如果我必须更新WebReference呢?它会重新生成ref.cs得到更新。有没有其他方法可以实现这个动态url,因为每当我们在web服务中编写新方法时,我们都必须更新引用,每当我们更新ref.cs时,ref.cs会被再次写入,我们会丢失关键值您不需要添加的代码。相反AppSettings中的UbossBridgeURL
广告只需使用添加到配置文件中的密钥(再次查找CoreBusiness\u ubossProvisioningService
)。并将Reference.cs
文件还原为其原始生成的状态。UbossBridgeURL键位于web配置中,而不是应用配置中。Webservice引用位于主项目中的ddl项目中。因此,我在主项目的WebConfig中添加了UbossBridgeURL键。我必须将这两个部分从我的应用配置复制到我的web配置中ig并保持reference.cs完整?这就是你的意思吗?
<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>
public class MyProvisioningServices : ProvisioningServices
{
public MyProvisioningServices()
{
Url = ConfigurationManager.AppSettings["UbossBridgeURL"];
}
}