Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >移植Windows自宿主WCF服务到Linux/Mono2.8

移植Windows自宿主WCF服务到Linux/Mono2.8

作者头像
张善友
发布于 2018-01-19 08:32:48
发布于 2018-01-19 08:32:48
1.3K00
代码可运行
举报
文章被收录于专栏:张善友的专栏张善友的专栏
运行总次数:0
代码可运行

Windows服务是这些后台程序、后台服务的正规名词。Windows服务的运行可以在没有用户干预的情况下,在后台运行,没有任何界面。通过Windows服务管理器进行管理。服务管理器也只能做些简单的操作:开始,暂停,继续,停止。Windows服务的特点:在后台运行,没有用户交互,可以随Windows启动而启动。

后台服务在Unix/Linux上叫做Daemon,在Linux系统中就包含许多的Daemon。判断Daemon最简单的方法就是从名称上看。Linux下自动启动的服务都在/etc/rc.d/init.d/目录下,比如说mysql。如果不想让一个服务自动运行,把/etc/rc.d/init.d/目录下的这个服务脚本移除掉就可以(一定要移除吗,不可以使用类似Window下的手动启动?)。

可以操作的状态:

  • start             启动服务,等价于服务脚本里的start命令
  • stop             停止服务,等价于副外长脚本stop命令
  • restart          关闭服务,然后重新启动,等价于脚本restart命令
  • reload          使服不重新启动而重读配置文件,等价与服务脚本的reload命令
  • status           提供服务的当前状态,等价于服务脚本的status命令
  • condrestart  如果服务锁定,则这个来关闭服务,然后再次启动,等价于condrestart命令

Mono 下的Windows服务叫做mono-service,mono-service 运行.net 1.0 程序集 和用 mono-service2 运行.net  2.0 以上的程序集。mono 2.8已经不支持.net 1的程序了,所以我们现在都是使用mono-service2,命令行说明文档参考http://manpages.ubuntu.com/manpages/lucid/man1/mono-service.1.html

 -d:DIRECTORY               Use this  option  to  specify  the  working  directory  for  the               service.  The default is the current directory. -l:LOCKFILE               Specifies the file to use for locking, the default is a filename               constructed in /tmp based on the name of the program that  hosts               the service. -m:MESSAGE               Name to show in the syslog. -n:NAME               Use  this  to specify the service to be launched (if the program               contains more than one service).   The default  is  to  run  the               first defined service. --debug               Use  this  option to prevent mono-service from redirecting stdin               and stdout and prevent the program to be sent to the background.               Equivalent to --no-daemon --no-daemon               Use  this  option to prevent mono-service from redirecting stdin               and stdout and prevent the program to be sent to the background.               Equivalent to --debug.

Mono 2.8对wcf的支持也比较好了,这里的例子就是将Windows下self host的一个wcf服务移植到Linux上。

1、在Window下编写一个WCF 服务端作为Window服务。我们服务的代码结构如下

要将.NET程序移植到Mono,我们一般会使用net 应用迁移到Mono 工具 (Moma)检查下兼容性。下面这个项目的检查结果,看看是不是Mono2.8完美支持WCF。

DynIPServiceWS是WCF的windows服务的宿主,我们把代码放到Linux下使用MonoDevelop编译.放到/home/geffzhang/Projects/DynIPServiceWS目录下,切换到这个目录,执行命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mono-service DynIPServiceWS.exe

运行DynIPClient.exe,返回运行结果说明服务已经在运行,如果客户端出现目标机器积极拒绝说明服务没有启动。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mono DynIPClient.exe。

关于Mono下的WCF的可以参考这个博客,作者 写了一个系列的文章:http://veritas-vos-liberabit.com/monogatari/

本文的例子下载:http://cid-33478a966734670f.office.live.com/self.aspx/.Public/WCF/DynIPUpdater%5E_0.1.zip

目前还有一个问题没有解决,就是如何把mono-service包装成Linux的Daemon,留待后续补充,欢迎有做好的同学共享下怎么做? http://www.cnblogs.com/sjhrun2001/archive/2009/03/10/1408264.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2010-10-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
WCF系列教程之WCF服务宿主与WCF服务部署
本文参考自http://www.cnblogs.com/wangweimutou/p/4377062.html,纯属读书笔记,加深记忆。 一、简介 任何一个程序的运行都需要依赖一个确定的进程中,WCF也不例外。如果我们需要使用WCF服务,那么我们就必须将服务寄宿与创建它并控制它的上下文和生存期的运行时环境当中,承载服务的环境,称之为宿主。WCF服务可以在支持托管代码的任意Windows进程中运行。WCF提供了统一编程模型,用于生成面向服务的应用程序。此编程模型保持一致且独立于部署服务的运行时环境。 实际上,
郑小超.
2018/01/26
1.7K0
使用Topshelf 5步创建Windows 服务
使用Topshelf创建Windows 服务简要的介绍了创建Windows服务的另一种方法,老外的一篇文章Create a .NET Windows Service in 5 steps with Topshelf通过5个步骤详细的介绍使用使用Topshelf创建Windows 服务。Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主。 1、Topshelf的代码托管在http://topshelf-project.com/,可
张善友
2018/01/19
1.3K0
Topshelf 支持Mono 扩展Topshelf.Linux
使用Topshelf 5步创建Windows 服务 这篇文章大家可以了解到使用Topshelf可以很好的支持Windows服务的开发,但是它和Mono不兼容,Github上有一个扩展https://g
张善友
2018/01/29
2.1K0
.NET Core 3.1和WorkerServices构建Windows服务
ASP.NET Core 3增加了一个非常有意思的功能Worker Service.他是一个ASP.NET Core模板,他允许我们创建托管长期的运行的后台服务,这些服务具体实现IHostedService接口的后台任务逻辑,他被成为"托管服务".同时他们可以部署到windows中Windows服务,以及Linux守护程序.
HueiFeng
2020/01/22
7110
.NET Core 3.1和WorkerServices构建Windows服务
.NET Core 3.1和WorkerServices构建Windows服务
ASP.NET Core 3增加了一个非常有意思的功能Worker Service.他是一个ASP.NET Core模板,他允许我们创建托管长期的运行的后台服务,这些服务具体实现IHostedService接口的后台任务逻辑,他被成为”托管服务”.同时他们可以部署到windows中Windows服务,以及Linux守护程序.
HueiFeng
2020/02/24
1.3K0
打造跨平台.NET Core后台服务
续之前讲的在TopShelf上部署ASP.NET Core程序,作为后台服务运行,自从.NET Core 3.0出现以后,出现了自带的Generic Host,使得自托管服务变为可能。
梁规晓
2020/11/05
1.2K0
打造跨平台.NET Core后台服务
supervisor服务监控工具
官网:http://www.supervisord.org/running.html#supervisord-command-line-options
陈不成i
2021/04/28
9790
Linux/Unix进程管理工具supervisor安装与配置
Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
菲宇
2019/06/12
1.1K0
Linux/Unix进程管理工具supervisor安装与配置
使用Topshelf创建Windows 服务
Winndows Service 是一种可随 Windows 操作系统启动而启动的,在后台运行的,通常不和用户产生交互的程序。它无法通过双击来运行,类似于 Unix 守护进程(daemon processes),当用户注销时它也不会停止。 Windows 服务由三部分组成: 一个服务可执行文件; 一个服务控制程序(SCP); 服务控制管理器(SCM),负责在 HKLM"SYSTEM"CurrentControlSet"Services 下创建服务键值。用户可通过 SCP 控制服务的启动、停止、暂停等,SCP
张善友
2018/01/19
1.1K0
使用C#创建及调用WCF完整实例 (Windows服务宿主)
关于WCF的概念、原理、优缺点等,在这里就不多说了,网上很多,可以自行搜索,比我解释的要专业的多。 这里直接说使用Windows 服务(Windows Service)作为宿主如何实现,其它方式不在此
庞小明
2018/03/12
5.2K0
使用C#创建及调用WCF完整实例 (Windows服务宿主)
使用Topshelf创建Windows 服务
http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html
跟着阿笨一起玩NET
2018/09/19
1K0
OrientDB在Linux及在Windows中安装的操作方式
企业版 - OrientDB企业版是作为一个专有软件发布的,它是建立在社区版。它作为社区版的延伸。
用户4988376
2021/08/13
2.1K0
Mono 把 .NET 应用程序移植到 Linux
Mono 是基于 .NET 的开放源码开发平台,它让您可以使用各种 .NET 兼容语言创建强大、灵活的 Linux® 应用程序,同时利用跨平台的能力。本文带领您在系统上安装 Mono,并开发第一个用 Mono 编译的可同时在 Linux 和 ® Windows® 上运行的 C# 应用程序。 C# 语言是一种面向对象的语言,用于为 Microsoft .NET 平台快速构建各种应用程序。C# 和 .NET 的目标是把您从底层的编程问题中解脱出来,如类型安全问题、内存管理、库构造等,以便把精力集中到构建应用程序
张善友
2018/01/29
4.7K0
创建Windows服务(Windows Services)N种方式总结
最近由于工作需要,写了一些windows服务程序,有一些经验,我现在总结写出来。 目前我知道的创建创建Windows服务有3种方式: a.利用.net框架类ServiceBase b.利用组件Topshelf c.利用小工具instsrv和srvany
跟着阿笨一起玩NET
2018/09/19
1.2K0
创建Windows服务(Windows Services)N种方式总结
WCF 学习总结1 -- 简单实例
从VS2005推出WCF以来,WCF逐步取代了Remoting, WebService成为.NET上分布式程序的主要技术。WCF统一的模型整合了以往的 WebService、Remoting、MSMQ
hbbliyong
2018/03/05
1K0
WCF 学习总结1 -- 简单实例
微软 WCF的几种寄宿方式,寄宿IIS、寄宿winform、寄宿控制台、寄宿Windows服务
WCF寄宿方式是一种非常灵活的操作,可以在IIS服务、Windows服务、Winform程序、控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者方便、高效提供服务调用。本文分别对这几种方式进行详细介绍并开发例子进行说明,以求大家对WCF寄宿的方式进行全面的认识和了解。 1、 WCF服务的IIS服务寄宿 我在我前面几篇WCF开发框架的介绍文章中,介绍过了WCF常用的一种寄宿方式,IIS服务寄宿。这种寄宿方式是最为方便的方式,而且由于服务只需要IIS运行就能自动运行起来,因此广为使用。 创建这种方式IIS
庞小明
2018/03/09
1.7K0
微软 WCF的几种寄宿方式,寄宿IIS、寄宿winform、寄宿控制台、寄宿Windows服务
CentOS 7 上部署Mono 4 和Jexus 5.6
概述 在这篇文章中我们将讨论如何在CentOS 7操作系统,安装 jexus、 mono 和 配置 jexus,因此它将能够在这种环境中运行一个asp.net mvc 4 应用。这篇文章是描述如何在 Linux/Unix 环境中使用Mono运行. NET的应用程序的一部分。 安装Mono 4 首先你需要有一个CentOS 7环境,可以使用DVD光盘在本地安装也可以通过阿里云、腾讯云或者Windows Azure上装一个,本文是在Windows Azure环境上部署的CentOS 7,具体可以参考《如何在Wi
张善友
2018/01/19
1.5K0
CentOS 7 上部署Mono 4 和Jexus 5.6
ASP.NET Core使用TopShelf部署Windows服务
asp.net core很大的方便了跨平台的开发者,linux的开发者可以使用apache和nginx来做反向代理,windows上可以用IIS进行反向代理。
梁规晓
2020/11/05
1.7K0
国内 Mono 相关文章汇总
一则新闻《软件服务提供商Xamarin融资1200万美元》,更详细的内容可以看Xamarin的官方博客Xamarin raises $12M to help you make better apps faster →。这篇新闻里告诉了我们目前Mono的用户规模“使用Xamarin软件的应用开发者已经超过15万,其中付费用户约为7500名。在Xamarin的客户中,还包括一些知名的企业,如美国国家仪器(National Instruments)和数字音乐订阅服务商Rdio等”。一直关注和研究Mono项目,今天
张善友
2018/01/26
12.2K0
C# WCF服务
WCF(Windows Communication Foundation)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术。是Windows平台上开发分布式应用最佳的实践方式。 WCF是.Net框架中的技术,用来创建面向服务的应用程序,交换不同通信方案里的消息,以及执行服务操作生成的工作流。WCF应用程序由三部分组成 - WCF服务,WCF服务主机和WCF服务客户端。WCF平台有时也被称为服务模型。WCF的基本特征是互操作性。这是微软用于构建面向服务的应用程序的最新技术之一。根据基于消息的通信的概念中,一个HTTP请求可以被均匀地表示,WCF是一个统一的API而不管不同的传输机制。
用户9127601
2021/11/01
1.2K0
相关推荐
WCF系列教程之WCF服务宿主与WCF服务部署
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验