我想改变" system.net" web.config中的部分。我想根据运行时中的变量添加或删除defaultProxy标记。
<defaultProxy enabled="true" useDefaultCredentials="false">
<module type = "XXX.Utils.YYProxy, XXX" />
</defaultProxy>
我知道,有相关帖子正在编辑web.config,但它们都与ConnectionStringsSection
或AppSettingsSection
相关。在System.Configuration包中有关于它们的特定类,但我没有找到任何与&#34; system.net&#34;相关的类。
你知道任何快速处理方法吗?提前致谢
答案 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);
}
当然,我需要查看更多代码才能提供更完整的答案。
希望这有帮助!