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. ...
随机推荐
- Linux 4.10中两个新特性与我的一段故事
今早5点半起来没有開始写文章,而是去西湾红树林连跑带走折腾了将近20公里.回来后就8点多了...洗了个澡之后坐稳当.開始写一段关于我的故事. 在2014年到2015年期间,我在负责研发一 ...
- http 状态码 码表
HTTP状态码详解 - 查询资料 1xx消息 这一类型的状态码,代表请求已被接受,需要继续处理.这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束.由于HTTP/1.0协议中没有定义 ...
- nginx加载字体文件的时候报错
nginx 下加载配置 location ~* \.(eot|ttf|ttc|otf|eot|woff|woff2|svg)$ { root /web/static_jr ...
- [CTCI] 最大子方阵
最大子方阵 题目描述 有一个方阵,其中每个单元(像素)非黑即白(非0即1),请设计一个高效算法,找到四条边颜色相同的最大子方阵. 给定一个01方阵mat,同时给定方阵的边长n,请返回最大子方阵的边长. ...
- CentOS 7 安装中文环境
centos升级到7后,系统设置好多和6有了很大的区别,中文支持就有很大的变化. 1.安装中文语言包. yum install kde-l10n-Chinese 2.安装(已经安装的要重新安装)gli ...
- Xilinx Vivado的使用详细介绍(2):综合、实现、管脚分配、时钟设置、烧写
前面一篇介绍了从新建工程一直到编写代码进行行为仿真,这篇继续进行介绍. 修改器件型号 新建工程时选择过器件型号,如果新建好工程后需要修改型号,可以选择菜单Tools - Project Setting ...
- python 给文件批量加‘“’ ”,"
file = open('face.txt','r') filew = open('face1.txt','w') try: for line in file: print(line) if line ...
- 数据库的ACID
一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. 准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例进行分析. [sql] ...
- Android 编程下 Eclipse 恢复被删除的文件
开发过程中文件误删除,又没有 Git,SVN 等版本控制软件的备份,怎么办? Eclipse 自带了恢复历史文件的功能:在项目上点击右键,选择 Restore from Local History,在 ...
- 【ARM】2410裸机系列-ADC数模转换
开发环境 1.硬件平台:FS2410 2.主机:Ubuntu 12.04 ADC寄存器配置 1.初始化ADC(ADCCON) 设置预分频,预分频因子,选择A/D转换通道,并选择正常模式 ...