vs使用透明代理工厂方式调用HTTPS协议的WCF服务
vs使用透明代理工厂方式调用HTTPS协议的WCF服务
透明代理工厂WCFFactory.Create方法: C# Code: /// <summary> /// 动态创建WCF接口透明代理 /// </summary> /// <typeparam name="T">WCF接口,如:ICommonService</typeparam> /// <param name="uri">URI地址</param> /// <returns></returns> public static T Create<T>(string uri = "") where T : class { //获取接口的URI地址,必须是主程序的App.config配置文件 if (String.IsNullOrWhiteSpace(uri)) { //获取WCF接口的名称,如:ICommonService string iName = typeof(T).Name; uri = System.Configuration.ConfigurationManager.AppSettings[iName]; } //获取协议配置并创建实例,必须是主程序的App.config配置文件 var myBinding = new WSHttpBinding("WSHttpBinding"); var myEndpoint = new EndpointAddress(new Uri(uri)); var myChannelFactory = new ChannelFactory<T>(myBinding, myEndpoint); //创建WCF通道 T instance = myChannelFactory.CreateChannel(); return instance; } //来源:C/S框架网 | www.csframework.com | QQ:23404761 测试调用WCF接口: C# Code: private void button1_Click(object sender, EventArgs e) { try { var svc = WCFFactory.Create<MyCommonService.ICommonService>(txtUrl.Text);//创建WCF接口实例 byte[] loginTicket = GetLoginer(); var no = svc.GetDataSN(loginTicket, "AA", true); (svc as ICommunicationObject).Close();//关闭WCF服务 MessageBox.Show(no); } catch (Exception ex) { throw ex; } } //来源:C/S框架网 | www.csframework.com | QQ:23404761 App.Config文件: XML Code: <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <system.serviceModel> <bindings> <!--测试界面的2种场景,分别对应下面的配置, 必须注释掉其中一种--> <!-- 【添加服务引用】创建的配置 <wsHttpBinding> <binding name="WSHttpBinding_ICommonService"> <security mode="Transport"> <transport clientCredentialType="None" /> </security> </binding> </wsHttpBinding> --> <!--【透明代理工厂】自定义binging, 名称:WSHttpBinding--> <wsHttpBinding> <binding name="WSHttpBinding"> <security mode="Transport"> <transport clientCredentialType="None" /> </security> </binding> </wsHttpBinding> </bindings> <client> <endpoint address="https://cs5.manonwo.com/CommonService.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ICommonService" contract="MyCommonService.ICommonService" name="WSHttpBinding_ICommonService"> <identity> <dns value="localhost" /> </identity> </endpoint> </client> </system.serviceModel> </configuration> //来源:C/S框架网 | www.csframework.com | QQ:23404761 扫一扫加作者微信
参考文档:
C#编码直接调用WCF服务时协议参数设置 连接WCF服务错误:调用方未由服务进行身份验证,无法满足对安全令牌的请求 开发平台WCF架构(Web服务)使用压缩数据双向通信测试报告 WCF客户端运行时架构体系透明代理(Transparent Proxy) 底层统一使用透明代理访问WCF服务 CSFramework平台的WCF体系架构 (Win服务承载与透明代理) 基于透明代理技术创建的WCF实例打开与关闭WCF通道 微信小程序使用https协议的WebApi后端应用服务(Win服务宿主或自承载) 提供的URI方案http无效,应为https,参数名via - WCF服务采用HTTPS协议 【原创】WCF开发框架 - 采用wsHttpBinding及basicHttpBinding连接https协议的WCF服务 vs使用添加服务引用方式连接HTTPS协议的WCF服务 WCF开发框架-客户端采用BASIC身份认证调用HTTPS协议WCF接口 WCF开发框架-客户端采用Windows身份认证调用HTTPS协议WCF接口 WCF开发框架-客户端采用Certificate认证模式调用基于HTTPS协议的WCF接口 WCF错误“这可能是因为在HTTPS情况下使用HTTP.SYS未正确配置服务器证书”
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |