我正在尝试根据网站是否有效来更改网络参考路径。
应用程序设置位于web.config
中<applicationSettings>
<WebReferenceName.Properties.Settings>
<setting name="WebReferenceName_Service_TBService"
serializeAs="String">
<value>http://localhost:50711/Service.svc</value>
</setting>
</WebReferenceName.Properties.Settings>
我尝试了以下内容:
Properties.Settings.Default.WebReferenceName_Service_TBService.Equals("http://www.newurl.com/service.svc");
虽然没有错误,但稍后再检查,表明它没有改变。
和
var config = WebConfigurationManager.OpenWebConfiguration("~/web.config");
config.AppSettings["WebReferenceName_Service_TBService"] = "http://www.newurl2.com/service.svc";
config.Save();
但是这个错误说我没有权限
还有另一种方法吗?
我宁愿不必在整个地方使用if语句,因为我的类型命名空间不同。 e.g。
using (var service = new WebServiceLocal.TheWebServiceService())
{
WebServiceLocal.blah();
}
由于
答案 0 :(得分:1)
执行此操作的首选方法是使用config transformations。因此,您的默认web.config将包含:
<applicationSettings>
<WebReferenceName.Properties.Settings>
<setting name="WebReferenceName_Service_TBService" serializeAs="String">
<value>http://localhost:50711/Service.svc</value>
</setting>
</WebReferenceName.Properties.Settings>
</applicationSettings>
在你的变换中,你会有这样的东西(注意xdt:Transform="Replace"
):
<applicationSettings>
<WebReferenceName.Properties.Settings>
<setting name="WebReferenceName_Service_TBService" serializeAs="String">
<value xdt:Transform="Replace">http://www.newurl2.com/service.svc</value>
</setting>
</WebReferenceName.Properties.Settings>
</applicationSettings>
需要注意的是,如果您正在为app.config执行类似操作(而不是web.config),则需要安装类似SlowCheetah的插件。