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接口透明代理
/// </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
{
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
<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

参考文档:
vs使用添加服务引用方式连接HTTPS协议的WCF服务
【原创】WCF开发框架 - 采用wsHttpBinding及basicHttpBinding连接https协议的WCF服务
WCF开发框架-客户端采用Certificate认证模式调用基于HTTPS协议的WCF接口
WCF开发框架 - vs发布IIS承载(IIS Hosting)的WCF应用服务详解
微信小程序使用https协议的WebApi后端应用服务(Win服务宿主或自承载)
WCF错误“这可能是因为在HTTPS情况下使用HTTP.SYS未正确配置服务器证书”
提供的URI方案http无效,应为https,参数名via - WCF服务采用HTTPS协议
C#.NET VS2015运行时调试Windows服务承载的WCF程序(新)
C#.NET VS2015运行时调试Windows服务(宿主)承载的WCF程序
WCF顶级安全:HTTPS协议SSL证书+Windows认证+TransportWithMessageCredential安全模式
WCF开发框架-客户端采用Windows身份认证调用HTTPS协议WCF接口
WCF开发框架-客户端采用BASIC身份认证调用HTTPS协议WCF接口
WCF快速开发框架 - IIS承载WCF服务wsHttpBindings配置详解(HTTP协议)
原创WebApi框架:采用HTTPS协议SelfHosting,Windows服务承载WebApi服务
WCF开发框架之WCF服务器配置文件 - Web.config
C#源代码安全缺陷与提高源代码质量解决方案-WCF服务配置安全
vs使用添加服务引用方式连接HTTPS协议的WCF服务
【原创】WCF开发框架 - 采用wsHttpBinding及basicHttpBinding连接https协议的WCF服务
WCF开发框架-客户端采用Certificate认证模式调用基于HTTPS协议的WCF接口
WCF开发框架 - vs发布IIS承载(IIS Hosting)的WCF应用服务详解
微信小程序使用https协议的WebApi后端应用服务(Win服务宿主或自承载)
WCF错误“这可能是因为在HTTPS情况下使用HTTP.SYS未正确配置服务器证书”
提供的URI方案http无效,应为https,参数名via - WCF服务采用HTTPS协议
C#.NET VS2015运行时调试Windows服务承载的WCF程序(新)
C#.NET VS2015运行时调试Windows服务(宿主)承载的WCF程序
WCF顶级安全:HTTPS协议SSL证书+Windows认证+TransportWithMessageCredential安全模式
WCF开发框架-客户端采用Windows身份认证调用HTTPS协议WCF接口
WCF开发框架-客户端采用BASIC身份认证调用HTTPS协议WCF接口
WCF快速开发框架 - IIS承载WCF服务wsHttpBindings配置详解(HTTP协议)
原创WebApi框架:采用HTTPS协议SelfHosting,Windows服务承载WebApi服务
WCF开发框架之WCF服务器配置文件 - Web.config
C#源代码安全缺陷与提高源代码质量解决方案-WCF服务配置安全
其它资料:
什么是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内容管理系统 |
什么是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内容管理系统 |
在线客服
