网络编辑.Config - "System.Net"部分编程

本文关键字:quot 编程 Net System Config 网络 编辑 | 更新日期: 2023-09-27 18:01:21

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

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

我知道,网上有相关的帖子编辑。但它们都与ConnectionStringsSectionAppSettingsSection有关。System中有关于它们的特定类。配置包,但我没有找到任何与"system.net"相关的类。

你知道什么快速的方法来处理这个吗?提前感谢

网络编辑.Config - "System.Net"部分编程

我找到了一个方法。我使用以下代码启用或禁用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类。

而不是从web中删除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);
}

当然,我需要看到更多你的代码来给出一个更完整的答案。

希望这对你有帮助!