如果我的 app.config 文件中有以下设置。这是我需要确保我的 WCF 客户端可以协商默认代理服务器的设置。
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true"></defaultProxy>
</system.net>
不幸的是,我无法在我的环境中添加 app.config 文件。如何通过在运行时设置这些设置来确保这些设置?
我认为您所做的是创建一个System.Net.WebProxy
对象,然后设置适当的变量,然后设置System.Net.WebRequest.DefaultWebProxy
:
System.Net.WebProxy proxy = new WebProxy();
proxy.UseDefaultCredentials = true;
WebRequest.DefaultWebProxy = proxy;
这篇文章有点谈论整个事情:链接
希望有帮助!
在项目的属性页面上应该有一个设置选项卡。您放在那里的任何内容实际上都存在于项目的 *.settings 文件中,但也会在部署时自动包含在 app.config 文件中。你可以在那里进行更改吗?
我想您正在使用从 WSHttpBindingBase 继承的绑定。如果是这样,您也可以尝试在代码中设置“UseDefaultWebProxy”属性。像这样的东西:
myWSHttpBinding.UseDefaultWebProxy = True;
编辑: BasicHttpBinding 也具有相同的属性。
无论您的可执行文件(不是库 dll)程序集的定义名称是什么,请在末尾添加一个“.config”...
所以如果你的可执行文件是
AcmeWidgets.EastCoast.MyApplicationName.exe
然后 app.config 将重命名为
AcmeWidgets.EastCoast.MyApplicationName.exe.config
但是,我不建议您尝试在运行时动态更改这些设置(在磁盘上的配置文件中)...
相反,您是否可以对您的应用程序进行编码,以便它从这些配置设置中填充和使用静态变量......然后实现动态“更改值”功能,以便它更改这些静态变量......
这样您仍然可以动态“影响”运行时行为,但避免了写入配置文件的麻烦,并且 Ops 管理可以通过编辑配置文件中的“默认”值来管理它......