c#更改Web参考url



我正试图改变一个网络参考路径取决于是否网站是活的或不

应用程序设置在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这样的插件。

最新更新