WCF宿主端检验队列】的更多相关文章

ServiceHost host = new ServiceHost(typeof(Service1)); if (MessageQueue.Exists(@".\private\MyMessageQueue") == false) { MessageQueue.Create(@".\private\MyMessageQueue", true); } host.Open();      上面的例子中宿主在打开以前检验MSMQ队列是否已经创建,如果需要穿件,那么宿主代…
本篇属于WCF实践入门,由于博主本人水平有限,没有理论上的介绍,仅仅从其几种不同的宿主方式分别介绍WCF的使用. WCF有多种宿主方式:1.自托管宿主,2.windows service宿主,3.IIS宿主,4.WAS宿主 本篇一一进行简要介绍(win7 + vs2012). 一.自托管宿主 利用WCF提供的ServiceHost<T>提供的Open()和Close()方法. 新建WCF服务库 新建WCF宿主应用程序 1)新建一个解决方案,名称为WcfService1Study.新建一个WCF…
今天尝试用控制台应用程序作为WCF宿主,遇到几个问题,这几个问题虽然都不难,但寻找解决方案相当费时费力,做记录. WCF标准的配置文件为: <system.serviceModel>        <services>            <service name="Microsoft.ServiceModel.Samples.CalculatorService" behaviorConfiguration="CalculatorServic…
1.服务端开发 1.1 WCF服务创建方式 创建一个WCF服务,总是会创建一个服务接口和一个服务接口实现.通常根据服务宿主的不同,有两种创建方式. (1)创建WCF应用程序 通过创建WCF服务应用程序,可生成一个带.svc后缀名的文件.该文件与webform中的aspx文件类似,有后置代码,这些后置代码是服务接口的实现.这种方式创建的WCF服务都承载在IIS或WAS上. (2)创建WCF服务库 WCF服务库是一个类库,如前所述包含一个服务接口和服务实现,此种方式创建的WCF服务可根据需要寄宿在w…
尝试了下将服务寄宿在window 服务上.具体步骤如下 整个解决方案截图 一.创建window 服务 Wcf.WinService namespace Wcf.WinService { public partial class CalService : ServiceBase { public ServiceHost serviceHost = null; //服务宿主 public CalService() { InitializeComponent(); base.ServiceName =…
当WCF调用远程服务时,显示该调用的网速或流量.其中比较关键的一步就是需要获得WCF  Client端的本地端口,原来以为是个简单的事情,结果查了1个多小时谷歌,硬是没找到好的法子,只有自己动手了. 首先,反编译System.ServiceModel.dll的代码,查找Socket,然后,就是一直反复的“转到定义”.“查找所有引用",最后利用反射搞定了!代码分享如下,如果大家有什么更好的方法,请告知下. var temp = RASHelper.CreatProxy<IFileUpLoad…
通常WCF服务端异常的详细信息只有在调试环境下才暴露出来,但我目前有需求需要将一部分异常的详细信息传递到客户端,又需要保证一定的安全性. 最简单的办法当然是在服务端将异常捕获后,序列化传给客户端,但这样需要给服务段方法提供ref或out关键字支持,浪费,不漂亮,所以还是让服务器端抛出异常比较容易. <service name="HotelService.HotelService" behaviorConfiguration="ServiceExceptionBehavi…
获得WCF Client端的本地端口 最近需要做个小功能,当WCF调用远程服务时,显示该调用的网速或流量.其中比较关键的一步就是需要获得WCF  Client端的本地端口,原来以为是个简单的事情,结果查了1个多小时谷歌,硬是没找到好的法子,只有自己动手了. 首先,反编译System.ServiceModel.dll的代码,查找Socket,然后,就是一直反复的“转到定义”.“查找所有引用",最后利用反射搞定了!代码分享如下,如果大家有什么更好的方法,请告知下. var temp = RASHel…
wcf服务端 1,新建一个"windows窗口程序"名称为WCFServer2. 2.然后加入一个"WCF服务"名称为Service1. 详细步骤为:解决方式试图中,选中"WCFServer2"项目,右键,在弹出菜单中选择"加入->新建项". 3,双击主窗口,在它的Load事件中编写代码启动wcf服务:BasicHttpBinding方式启动wcf服务.此文件代码例如以下: using System.ServiceMod…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5289 Problem Description Tom owns a company and he is the boss. There are n staffs which are numbered from 1 to n in this company, and every staff has a ability. Now, Tom is going to assign a special tas…
一.概述 WCF程序必须在宿主上运行,也就是WCF服务必须寄宿在某一个windows的进程中,可以是IIS.控制台程序.窗体程序.WAS以及所有.net程序等程序进程中.在我用VS2013创建WCF服务的时候有四个类型:WCF服务库.WCF服务应用程序.WCF工作流服务应用程序和联合服务库.现在处于初学阶段,主要学习用到的是WCF服务库和WCF服务应用程序,它们有什么区别呢? 1.WCF服务库:相当于一个包含WCF服务的类库,本身不能执行,必须通过别的宿主程序(如控制台程序.WAS等)托管引用后…
在一些大型的解决方案中,假设我们的服务没有办法一直在线,或者因为这样那样的原因宕机了,有没有什么办法让客户端的影响最小化呢?答案是可以通过消息队列的方式,哪怕服务是没有在线的,客户端依然可以继续操作. 1. 首先来学习一些消息队列的基础知识 消息队列默认是没有安装的,可以通过下面的方式进行安装 2. 通过一个小程序来演示一下如何发送和接受消息 static void SendMessage() { Message msg = new Message("这是我的一个消息"); strin…
一.引言 Windows Communication Foundation(WCF)是Microsoft为构建面向服务的应用程序而提供的统一编程模型,该服务模型提供了支持松散耦合和版本管理的序列化功能,并提供了与消息队列(MSMQ).COM+.Asp.net Web服务..NET Remoting等微软现有的分布式系统技术.利用WCF平台,开发人员可以很方便地构建面向服务的应用程序(SOA).可以认为,WCF是对之前现有的分布式技术(指的是MSMQ..NET Remoting和Web 服务等技术…
宿主 每个WCF服务都必须托管在Windows进程中,该进程称为宿主进程(host process) 单个宿主进程可以托管多个服务,相同的服务类型也可以托管在多个宿主进程中. wcf中托管服务一般有一下四种: 寄宿方式 描述 Console寄宿 利于开发调试,但不是生产环境中的最佳实践. winform寄宿 方便与用户进行交互,用户想开就开,想关就关,但如果机器重启了,不得不自己手动开一下,危险+麻烦. IIS寄宿 此寄宿在实战项目中得到了广泛的应用.好处有:随系统启动和停止.iis有大量的管理…
服务端不多讲解,有一处需要改的地方.具体服务端请看WCF入门学习2-控制台做为宿主 建议实际项目不要拿去用,毕竟是mono不是原生.net.或许是个坑 由于Unity的mono版本问题不能直接用net.tcp.用的http绑定方式 ==================================== //部分示例代码摘自 无废话WCF入门教程系列 using (ServiceHost host = new ServiceHost(typeof(Service1), baseAddress))…
当服务端部署的WCF服务服务在被客户机调用时,如果显示: 错误,展开后,详细错误为:An error occurred when verifying security for the message 这个时候,出错的原因竟然是:客户机与服务机时间差不能多于5分钟.请修改系统时间即可解决问题. 刚好5分钟多一点点时,会报如下错误: 时间差缩短在5分钟以内时,即可正常调用.效果如下:…
问题 在使用WCF的过程中,有时候需要在service端截取client和service之间的消息来做一些如写log,检查message是否合法的操作. 那么如何才能实现呢? 解决方案 使用WCF提供的Inspector功能.我们可以通过实现WCF提供的IParameterInspector或者IDispatchMessageInspector 接口来实现上述需求.以下是需要实现步骤: 1. 实现IParameterInspector或者IDispatchMessageInspector接口 2…
项目中需要同时用到WCF的SOAP接口和RESTFul Service,查了下资料发现WCF可以支持发布两种服务接口,整理资料如下 1.首先建立服务接口 备注:如果宿主不是网站,则接口上增加属性WebInvoke的时候启动会报错 WebInvoke:声明支持RESTFul ,接口名称为GetSchoolList(http://localhost:81/ServicesSchool.School.svc/GetSchoolList) OperationContract:支持WCF默认 namesp…
出现这个原因我们应该都能猜测到,文件传出过大,超出了WCF默认范围,那么我们需要进行修改. 服务端和客户端都需要修改. 第一.客户端: <system.serviceModel> <bindings> <basicHttpBinding> <binding name="BasicHttpBinding_ITaskService" /> </basicHttpBinding> </bindings> <clie…
长期以来在wcf客户端库 https://github.com/dotnet/wcf 里反应最强烈的就是.NET Core的服务端支持 https://github.com/dotnet/wcf/issues/2695 ,在build 2019 大会上微软明确说明在将WinForms,WPF和Entity Framework 6添加到.NET Core 3.0后,不打算再将.NET Framework中的技术添加到.NET Core中.这意味着微软不会向.NET Core添加ASP.NET We…
背景 客户端与服务端使用WCF建立连接后:1.可能长时间不对话(调用服务操作):2.客户端的网络不稳定. 为服务端与客户端两边都写“心跳检测”代码?不愿意. 解决 设置inactivityTimeout属性:设置KeepAlive值,以保持数据层连接 <reliableSession enabled="true" inactivityTimeout="00:00:30"/> 设置ReceiveTimeout 属性:服务端允许客户端登录后不做任何应用层服务…
一.MSMQ简介 MSMQ(微软消息队列)是Windows操作系统中消息应用程序的基础,是用于创建分布式.松散连接的消息通讯应用程序的开发工具. MSMQ与XML Web Services和.Net Remoting一样,是一种分布式开发技术.但是在使用XML Web Services或.Net Remoting组件时,Client端需要和Server端实时交换信息,Server需要保持联机.MSMQ则可以在Server离线的情况下工作,将Message临时保存在Client端的消息队列中,以后…
在之前的文章中已经为大家介绍了java并发编程的工具:BlockingQueue接口.ArrayBlockingQueue.DelayQueue.LinkedBlockingQueue.PriorityBlockingQueue.SynchronousQueue,本文为系列文章第七篇. BlockingDeque接口和BlockingQueue接口一样都是在java.util.concurrent中定义的,它代表了一个线程安全的"双端队列",以线程安全的方式向队列中添加元素或获取元素.…
1) 打开Visual Studio 2012,在菜单上点击文件->新建->项目->WCF服务应用程序.在弹出界面的"名称"对应的文本框中输入"WcfServiceTest",然后点击"确定"按钮. 如下图: 2) 把Visual Studio 2012自动生成的两个文件IService1.cs改名为IService.cs接口类.Service1.cs改名为Service.cs实现类. 如下图: 3) 由于Visual Stud…
[ServiceBehavior( InstanceContextMode = InstanceContextMode.Single,   //表示所有的请求都用一个服务实例来处理 ConcurrencyMode = ConcurrencyMode.Multiple,   // 表示服务类支持多线程 IncludeExceptionDetailInFaults = true)]   //  仅在开发阶段将其设置成true,能将服务端的异常作为错误的消息发出,必便对服务进行故障排除.…
原文 http://blog.csdn.net/zlj002/article/details/7914556 string jsonstr = String.Empty; string url = "http://localhost:7041/Service1/Hello"; #region WebClient 访问Get WebClient webclient = new WebClient(); Uri uri = new Uri(url, UriKind.Absolute); i…
<system.diagnostics> <sources> <source name="System.ServiceModel" switchValue="Warning" propagateActivity="true"> <listeners> <add name="xml" /> </listeners> </source> </…
题目链接:https://pintia.cn/problem-sets/1101307589335527424/problems/1101313244863737856 题意:实现双段队列的队首出队.入队以及队尾出队.入队4个操作 思路: 根据裁判测试程序我们可以发现,在CreateDeque函数中将MaxSize加了1,而且这里的MaxSize定义的是最大容量,所以这是一个循环队列,且为了避免Front=Rear时会出现表示队空和队满2种情况的二义性,需要将Rear表示队尾的下一个元素,这样就…
ServiceHost  host;  // 全局 host = new ServiceHost(typeof(实现服务接口的类)); host.open(); 用代码配置端点的方法 host.addserviceendpoint(typeof classlibrary1.myinterface),address)  上图代码显示不全 客户端代码…
可信赖会话 WCF的可信赖会话在绑定层保证消息只会被传输一次,并且保证消息间的顺序.当使用TCP通信时,协议本身保证了可靠性,但它只在两点间的网络 包这个层面提供了这样的保证.WCF的可信赖会话特性保证了在传输过程中消息不会丢失.重复或错位.这种保证是消息层面的,且适用于任何数目节点间的通 信.另外,使用可信赖会话时,WCF会重连掉线的连接,在重连失败时还会释放会话占用的相关资源.可信赖会话还会通过调整消息的发送频率来缓解网络拥挤. 为使用WCF的可信赖会话,必须选择支持可信赖会话的绑定.支持这…