WCF基本概念以winfrom为宿主发布WCF

2024-02-27 10:32

本文主要是介绍WCF基本概念以winfrom为宿主发布WCF,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.WCF的基本概念  (ABC)A 地址 Address  服务对外的地址  如: http://192.168.0.73:8888/WCFServer/UserService/ B 绑定 Binding  决定服务的细节   常用的有BasicHttpBinding 用http进行传输,数据格式为text/xmlWSHttpBinding    比BasicHttpBinding更加安全NetTcpBinding    最适合做跨机器的安全绑定C 契约 Contract 服务的定义(抽象) ,对应服务的接口 如: IUserServiceeg: WCF的一个配置(配置文件一般在新建contract时生成)<system.serviceModel><bindings /><client /><services><service name="WCFServer.Service1"><host><baseAddresses><add baseAddress="http://192.168.0.73:8888/WCFServer/Service1/"   /></baseAddresses></host><endpoint address=""  binding="wsHttpBinding" contract="WCFServer.IService1"></endpoint></service><service name="WCFServer.UserService"><host><baseAddresses><add baseAddress="http://192.168.0.73:8888/WCFServer/UserService/" /></baseAddresses></host><endpoint address="" binding="wsHttpBinding" contract="WCFServer.IUserService"></endpoint></service></services><behaviors><serviceBehaviors><behavior><!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点  --><serviceMetadata httpGetEnabled="True"/><!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息--><serviceDebug includeExceptionDetailInFaults="False" /></behavior></serviceBehaviors></behaviors></system.serviceModel>2. 以winform程序作为WCF的契约宿主1. 新建一个WCF服务库项目,在里面可以新建契约(IUserService)和实现(UserService),新建完成后会在app.config中生成 WCF的配置文件。2. winfrom程序启动WCF(1)新建winfom项目namespace WCFServerHost
{public partial class Form1 : Form{private ServiceHost serviceHost = null;private ServiceHost userHost = null;public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){string btnText = button1.Text.Trim();if (btnText.Equals("启动服务")){if (null == serviceHost && null == userHost){serviceHost = new ServiceHost(typeof(WCFServer.Service1));userHost = new ServiceHost(typeof(WCFServer.UserService));  //定义了两个契约,都需要启动//绑定 BindingSystem.ServiceModel.Channels.Binding httpBinding = new BasicHttpBinding();//终结点 EndPoint serviceHost.AddServiceEndpoint(typeof(WCFServer.IService1), httpBinding, "http://192.168.0.73:8888/WCFServer/MyService1/");userHost.AddServiceEndpoint(typeof(WCFServer.IUserService), httpBinding, "http://192.168.0.73:8888/WCFServer/MyUserService/");serviceHost.Open(); //启动服务userHost.Open();button1.Text = "停止服务";lblResult.Text = "服务已经启动";}}else {serviceHost.Close();userHost.Close();serviceHost = null;userHost = null;button1.Text = "启动服务";lblResult.Text = "服务已经停止";}}}
}(2) 将WCF服务库中的app.config 拷贝到winform项目下,并将WCF服务库中的app.config配置文件删除(3) 运行winFrom工程下的 bin/debug 下面的 exe(这一步是为了生成客户端代理,需要启动Host)  3  客户端调用, 新建一个控制台程序,添加服务引用 ,如:http://192.168.0.73:8888/WCFServer/Service1/调用如下:namespace WCFClient
{class Program{static void Main(string[] args){WCFServer1.IService1 wcfServerClient = new WCFServer1.Service1Client("BasicHttpBinding_IService1");string result =  wcfServerClient.GetData(123);Console.WriteLine(result);UserService.IUserService userServiceClient = new UserService.UserServiceClient("BasicHttpBinding_IUserService");int userId = 0 ;int responseId = userServiceClient.CheckUser(out userId, "test", "123456");if(responseId==1){Console.WriteLine(userId);}Console.ReadLine();}}
}

这篇关于WCF基本概念以winfrom为宿主发布WCF的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/752104

相关文章

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

【机器学习】高斯网络的基本概念和应用领域

引言 高斯网络(Gaussian Network)通常指的是一个概率图模型,其中所有的随机变量(或节点)都遵循高斯分布 文章目录 引言一、高斯网络(Gaussian Network)1.1 高斯过程(Gaussian Process)1.2 高斯混合模型(Gaussian Mixture Model)1.3 应用1.4 总结 二、高斯网络的应用2.1 机器学习2.2 统计学2.3

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

【Rocketmq入门-基本概念】

Rocketmq入门-基本概念 名词解释名称服务器(NameServer)消息队列(Message Queue)主题(Topic)标签(Tag)生产者(Producer)消费者(Consumer)拉取模式(Pull)推送模式(Push)消息模型(Message Model) 关键组件Broker消息存储工作流程 名词解释 名称服务器(NameServer) 定义: 名称服务器

C++编程:ZeroMQ进程间(订阅-发布)通信配置优化

文章目录 0. 概述1. 发布者同步发送(pub)与订阅者异步接收(sub)示例代码可能的副作用: 2. 适度增加缓存和队列示例代码副作用: 3. 动态的IPC通道管理示例代码副作用: 4. 接收消息的超时设置示例代码副作用: 5. 增加I/O线程数量示例代码副作用: 6. 异步消息发送(使用`dontwait`标志)示例代码副作用: 7. 其他可以考虑的优化项7.1 立即发送(ZMQ_IM

Winfrom中解决图像、文字模糊的方法

1.添加清单 2.将清单中的下面内容取消注释

风格控制水平创新高!南理工InstantX小红书发布CSGO:简单高效的端到端风格迁移框架

论文链接:https://arxiv.org/pdf/2408.16766 项目链接:https://csgo-gen.github.io/ 亮点直击 构建了一个专门用于风格迁移的数据集设计了一个简单但有效的端到端训练的风格迁移框架CSGO框架,以验证这个大规模数据集在风格迁移中的有益效果。引入了内容对齐评分(Content Alignment Score,简称CAS)来评估风格迁移