c# winform+wcf代理上网的处理
程序是.net开发的winform工具,分服务器端和客户端,用wcf技术实现数据交互。
客户端是大型公司,内部统一使用代理服务器上网。具体描述为:在IE中设置lan代理服务器才能查询网络数据;登录QQ或其他联网程序(网络版金山词霸)时,需要打开程序的代理设置,填写相应的地址和端口,才能登录。
自行开发的.net程序这类问题怎么解决。
参考这里:http://bbs.csdn.net/topics/390395103
HomeLinkTransClient client = new HomeLinkTransClient(binding, epAddress);
client.ClientCredentials.UserName.UserName = "用户名";
client.ClientCredentials.UserName.Password = "密码";
此客户端代理是别人访问设置的用户名和密码
web.config配置才是网络代理
<system.net>
<defaultProxy useDefaultCredentials="true"></defaultProxy>
</system.net>
以上web.config设置会默认的从浏览器中找到代理。
实际应用只在服务器端的web.config里面设置了下面的代码即可解决问题。
至于上面的client的设置,暂不清楚用处。
补充一:上面的方法并未解决实际用户的问题。
wcf的客户端代理为System.ServiceModel.ClientBase<IWcfService>类型的对象,每次链接wcf都是实例化此对象,然后发送请求。
本次的解决方法:
public class WcfClient
{
static readonly System.ServiceModel.BasicHttpBinding _Binding; /// <summary>
/// 默认wcf服务连接
/// </summary>
public const string UriString = @"http://www.123.cn/wcf.svc"; static WcfClient()
{
_Binding = new BasicHttpBinding();
_Binding.ReaderQuotas = new System.Xml.XmlDictionaryReaderQuotas() { MaxStringContentLength = }; //(更改这个数字)
//在这里设置代理
WebProxy proxy = new WebProxy("192.168.0.200:8765", false);
proxy.Credentials = new NetworkCredential("User", "psd");
System.Net.HttpWebRequest.DefaultWebProxy = proxy;
} /// <summary>
/// 获取wcf服务
/// </summary>
/// <param name="uri">wcf服务连接</param>
/// <returns></returns>
public static WcfServiceClient GetService(string uri = UriString)
{
var sc = new WcfServiceClient();
sc.Endpoint.Address = new EndpointAddress(new Uri(uri));
sc.Endpoint.Binding = _Binding;
return sc;
}
}
在上面的静态构造函数里面配置代理的属性,赋值给System.Net的默认代理设置即可。
遗留问题:通常代理的设置都有http/sockS5/sockS4/浏览器设置等,这里的代理设置应该是对http的代理设置,这几种代理设置是针对代理服务器的还是wcf数据传输方式?感觉应该是代理服务器的,如果是这样,那其他几种代理方式的程序设置应该怎么完成呢?
没看懂的资料:http://bbs.csdn.net/topics/110181980
补充二:
http://code.logos.com/blog/2010/01/using_http_proxy_servers.html
c# winform+wcf代理上网的处理的更多相关文章
- centos 6.4 系统代理上网 设置
前面讲了yum 代理设置上网的方法,现在设置一下系统代理上网, 网上很多都不管用,已亲测管用 [root@proxy ~]# cat .bash_profile #root目下添加代理上网,蓝色代码# ...
- Android Virtual Devices代理上网
本机电脑是使用代理上网,然后要在avd中要连接互联网,设置步骤如下: Click on Menu Click on Settings Click on Wireless & Networks ...
- 通过firefox+ProxySelector+dtunnel_lite实现代理上网
通过firefox+ProxySelector+dtunnel_lite实现代理上网 dtunnel_lite:http://dog-tunnel.tk/下载lite版本就可以 远端:./dtunne ...
- 通过xshell 设置代理上网
前言: 前段时间,选修了一门并行计算,老师给我们每个人分配了一个linux登录账号,通过这个账号,可能登录学校的一台linux . 一次偶然的机会,了解到可以通过xshell , ssh服务器给本地开 ...
- Centos系统使用代理上网时 yum的代理设置
yum的存在使centos上软件的安装.配置.升级.卸载变得十分的方便,但是当安装centos的机器是通过代理服务器访问外网的话,yum的 使用就变得无从下手了,以下介绍以下怎样为yum配置代理地址及 ...
- 设置IE浏览器代理上网
在局域网中,服务器可以直接通过IE网上冲浪,而工作站要想通过IE上网,如果是在服务器使用代理软件的情况下,其IE需要设置代理. 步骤一:启动IE浏览器,选择"工具",再" ...
- linux命令行模式下实现代理上网
有些公司的局域网环境,例如我们公司的只允许使用代理上网,图形界面的很好解决就设置一下浏览器的代理就好了,但是linux纯命令行的界面就....下面简单几步就可以实现了! 一.命令行界面的一般代理设置方 ...
- Windows 10 代理上网用户的正确使用姿势
1.找不到IE,如何使用IE来配置局域网代理 打开Edge浏览器,点击选项,找到“使用Internet Explorer打开” 接下来可以使用熟练的姿势设置IE局域网代理上网了 2.Windows ...
- WCF代理是怎么工作的?用代码说话
1.WCF生成代理的方式 2.WCF代理原理 第一个问题引用 一篇Robin's博文[WCF生成客户端对象方式解析] 讲述了创建客户端服务对象的方法 1.代理构造法 a.开启服务后,添加服务引用 b. ...
随机推荐
- Android Developers:绘制9-patch图片
绘制9-patch图片工具让你使用可见即可得(WYSIWYG)编辑器轻松创建Nine Patch图像. 关于介绍Nine-path图片和它是如何工作的,请在2D Graphics的文档中查阅关于Nin ...
- 内心的平静就是财富本身-Cell组件-用友华表的由来-T君
时至今日,Cell组件仍是应用广泛的商业报表组件 作者:人生三毒 编者注:本文作者人生三毒为知名网站及网页游戏公司创始人,此前曾为IT类媒体资深编辑,见证了中国互联网早期的发展. 认识T君之前先认识的 ...
- Django的AutoField字段
[Django是一个机智的框架] 默认情况下Djang会为ORM中定义的每一张表加上一个自增ID列,并且用这个列来做主键:出于一个MySQL-DBA的工作经历我觉得 Djanog还真是机智:这样么说主 ...
- 安装python 2.7条件下的pip环境
wget https://pypi.python.org/packages/ff/d4/209f4939c49e31f5524fa0027bf1c8ec3107abaf7c61fdaad704a648 ...
- IOS使用AVAudioPlayer播放mp3歌曲文件并监听来电打断
本实例实现了AVAudioPlayer播放mp3歌曲文件,实现了播放.暂停.继续操作,音乐音量控制.播放进度显示,同时监听来电打断事件 一.控件初始化 - (void)viewDidLoad { [s ...
- nginx 环境下http和https(ssl)共存的方法
80 443喘口共存之前是没问题的,但这次突然发现了这样的问题,htpps可以访问,但http不能访问会反回400 1xx.6x.x9.x8 - - [19/Jun/2017:16:04:28 +08 ...
- C++类成员函数
c++的两大特色是多态和模板.其中多态是通过继承和虚函数来实现的,其中虚函数是通过每个对象里面的虚表来实现的.如果这个对象的类有虚函数,那么这个类就有一张虚表,存的是每个虚函数的入口地址,而这个类的每 ...
- 【嵌入式】FS2410移植U-Boot-1.1.6
移植环境 硬件平台:FS2410 U-Boot版本:u-boot-1.1.6 编译器:arm-linux-gcc version 3.4.1 U-Boot主要目录结构 U-Boot的 stage ...
- ubuntu+nginx+laravel
1, 到http://v4.golaravel.com/docs/4.2/installation 点击下载最新版Laravel框架.然后解压 2,把laravel-master下的文件夹拷入到php ...
- Linux中查看GNOME版本号
在使用图形终端时,可以在虚拟终端中直接输入gnome-about,会弹出如下窗口. 或者在纯命令行模式下使用下面命令: $ gnome-about --gnome-version 注:Gnome 3. ...