编辑Web.Config - " System.Net"部分编程?

时间:2015-07-07 16:16:46

标签: c# asp.net web-config edit system.net

我想改变" system.net" web.config中的部分。我想根据运行时中的变量添加或删除defaultProxy标记。

<defaultProxy enabled="true" useDefaultCredentials="false">
  <module type = "XXX.Utils.YYProxy, XXX" />
</defaultProxy>

我知道,有相关帖子正在编辑web.config,但它们都与ConnectionStringsSectionAppSettingsSection相关。在System.Configuration包中有关于它们的特定类,但我没有找到任何与&#34; system.net&#34;相关的类。

你知道任何快速处理方法吗?提前致谢

2 个答案:

答案 0 :(得分:1)

我找到了一种方法来做到这一点。我使用以下代码启用或禁用defaultProxy标记:

Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
NetSectionGroup netSection = (NetSectionGroup)config.GetSectionGroup("system.net");
if (string.IsNullOrEmpty(model.ProxyUrl))
    netSection.DefaultProxy.Enabled = false;
else
    netSection.DefaultProxy.Enabled = true;

关键是将 SectionGroup 转换为 NetSectionGroup 类。

答案 1 :(得分:0)

我建议您在代码中根据分配给您引用的变量的值覆盖使用的代理,而不是从web.config中删除defaultProxy元素。

例如:

WebRequest request = WebRequest.Create("http://stackoverflow.com/");

if(variable == "some expected value to override default proxy") {
    //by setting the Proxy property of the Request object to a new WebProxy class, you override the default
    request.Proxy = new WebProxy("http://someproxyserver.com:80", true);
}

当然,我需要查看更多代码才能提供更完整的答案。

希望这有帮助!