vs使用透明代理工厂方式调用HTTPS协议的WCF服务


  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/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:vs使用添加服务引用方式连接HTTPS协议的WCF服务
下一篇:编辑网站绑定SSL证书提示:至少一个其他网站正在使用同一个https绑定
评论列表

发表评论

评论内容
昵称:
关联文章

vs使用透明代理工厂方式调用HTTPS协议WCF服务
vs使用添加服务引用方式连接HTTPS协议WCF服务
WCF开发框架-客户端采用Certificate认证模式调用基于HTTPS协议WCF接口
底层统一使用透明代理访问WCF服务
WCF开发框架-客户端采用BASIC身份认证调用HTTPS协议WCF接口
WCF开发框架-客户端采用Windows身份认证调用HTTPS协议WCF接口
CSFramework平台WCF体系架构 (Win服务承载与透明代理)
【原创】WCF开发框架 - 采用wsHttpBinding及basicHttpBinding连接https协议WCF服务
WCF顶级安全:HTTPS协议SSL证书+Windows认证+TransportWithMessageCredential安全模式
WCF开发框架默认连接:HTTP协议+Message安全模式+Windows客户端认证
WCF快速开发框架 - IIS承载WCF服务wsHttpBindings配置详解(HTTP协议)
提供URI方案http无效,应为https,参数名via - WCF服务采用HTTPS协议
微信小程序使用https协议WebApi后端应用服务(Win服务宿主或自承载)
C#编码直接调用WCF服务协议参数设置
基于透明代理技术创建WCF实例打开与关闭WCF通道
承载 Service Host 和使用 WCF 服务
WCF快速开发框架 - IIS承载WCF http协议BasicTcpBinding配置详解
原创WebApi框架:采用HTTPS协议SelfHosting,Windows服务承载WebApi服务
使用配置文件构建和使用WCF服务(WCF Service)
WCF开发框架 - vs发布IIS承载(IIS Hosting)WCF应用服务详解