我正试图改变一个网络参考路径取决于是否网站是活的或不
应用程序设置在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语句,因为类型的命名空间不同。例如
using (var service = new WebServiceLocal.TheWebServiceService())
{
WebServiceLocal.blah();
}
谢谢
首选的方法是使用配置转换。这就是你的默认网页。配置将包含:
<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这样的插件。