C#更改Web参考url

C#更改Web参考url,c#,dynamic,web-config,web-reference,C#,Dynamic,Web Config,Web Reference,我正在尝试根据站点是否处于活动状态来更改web引用路径 应用程序设置位于web.config中 <applicationSettings> <WebReferenceName.Properties.Settings> <setting name="WebReferenceName_Service_TBService" serializeAs="String"> <value>http://localhost:50711/Serv

我正在尝试根据站点是否处于活动状态来更改web引用路径

应用程序设置位于web.config中

<applicationSettings>
<WebReferenceName.Properties.Settings>
  <setting name="WebReferenceName_Service_TBService"
    serializeAs="String">
    <value>http://localhost:50711/Service.svc</value>
  </setting>
</WebReferenceName.Properties.Settings>
虽然没有错误,但稍后检查时,显示它没有更改

但是这个错误表明我没有权限

还有别的办法吗

我不想到处使用if语句,因为我的类型的名称空间不同。 e、 g


谢谢

这样做的首选方法是使用。因此,您的默认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>

需要注意的一点是,如果您正在为app.config(而不是web.config)执行类似的操作,您将需要安装一个类似的插件。

为什么不使用配置转换?所以一个web.config和一个web.release.config,当你这样说的时候,它是如此的明显!有时候你就是看不见树林。:-)这种情况经常发生!我将把它作为一个答案:)
var config = WebConfigurationManager.OpenWebConfiguration("~/web.config");
config.AppSettings["WebReferenceName_Service_TBService"] = "http://www.newurl2.com/service.svc";
config.Save(); 
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>
<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>