Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何与windows服务进行通信?

如何与windows服务进行通信?
EN

Stack Overflow用户
提问于 2010-12-15 14:54:54
回答 7查看 59.7K关注 0票数 40

我想创建一个windows服务来验证数据,并从另一个windows应用程序访问它,但我对服务是新手,我不知道如何开始。

因此,当服务运行时,windows应用程序应该以某种方式连接到服务,发送一些数据,并得到一个响应,对或错。

EN

回答 7

Stack Overflow用户

发布于 2013-09-05 13:22:49

通过执行以下操作,我可以成功地处理(几乎)与您相同的问题:

在代表服务类的class : ServiceBase中,您可能具有:

代码语言:javascript
运行
AI代码解释
复制
public Class () //constructor, to create your log repository
    {
      InitializeComponent();

      if (!System.Diagnostics.EventLog.SourceExists("YOURSource"))
      {
        System.Diagnostics.EventLog.CreateEventSource(
           "YOURSource", "YOURLog");
      }
      eventLog1.Source = "YOURSource";
      eventLog1.Log = "YOURLog";
    }

现在实现:

代码语言:javascript
运行
AI代码解释
复制
protected override void OnStart(string[] args)
{...}

代码语言:javascript
运行
AI代码解释
复制
protected override void OnStop()
{...}

要处理自定义命令调用:

代码语言:javascript
运行
AI代码解释
复制
protected override void OnCustomCommand(int command)
    {
      switch (command)
      {
        case 128:
          eventLog1.WriteEntry("Command " + command + " successfully called.");
          break;
        default:
          break;
      }
    }

现在,在将要调用服务的应用程序中使用以下代码:

引用您的方法的枚举:(请记住,服务自定义方法总是接收一个int32 (128到255)作为参数,使用枚举可以更容易地记住和控制您的方法

代码语言:javascript
运行
AI代码解释
复制
private enum YourMethods
  {
    methodX = 128
  };

调用特定方法的步骤:

代码语言:javascript
运行
AI代码解释
复制
ServiceController sc = new ServiceController("YOURServiceName", Environment.MachineName);
ServiceControllerPermission scp = new ServiceControllerPermission(ServiceControllerPermissionAccess.Control, Environment.MachineName, "YOURServiceName");//this will grant permission to access the Service
    scp.Assert();
    sc.Refresh();

    sc.ExecuteCommand((int)YourMethods.methodX);

通过执行此操作,您可以控制您的服务。

您可以查看如何创建和安装Here服务。关于ExecuteCommand方法的More

祝好运!

票数 39
EN

Stack Overflow用户

发布于 2010-12-15 15:02:06

如果您使用的是.Net Framework4,那么内存映射文件提供了一种实现跨进程通信的相当简单的方法。

它相当简单,在文档中有很好的描述,并且避免了使用WCF或其他基于连接/远程的交互的开销(在运行时,但也避免了开发工作),或者将共享数据写入中央位置和轮询(数据库、文件等)。

有关概述,请参阅here

票数 5
EN

Stack Overflow用户

发布于 2010-12-15 14:58:28

通过使服务宿主WCF服务并从您的应用程序连接到它,您可以非常容易地实现这一点。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4451216

复制
相关文章
nginx配置Symfony
server { listen 80; server_name blog.phpfs.com; root /data/web; rewrite ^/a
苦咖啡
2018/04/28
1.7K0
Symfony是什么
众所周知前面有说到PHP的七大框架,接下来就来说说Symfony框架,希望说的对大家有所帮助。
叫我可儿呀
2019/11/26
2.2K0
Symfony是什么
Symfony 服务容器入门
本文是依赖注入(Depeendency Injection)系列教程的第 3 篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括:
柳公子
2018/09/17
3.4K0
Symfony 3 框架+Elasticsearch
目录src/AppBundle/Controller/SearchController.php
Stanley Sun
2019/09/23
7990
Ubuntu配置Symfony环境
1、装好ubuntu使用 sudo passwd root 设置root密码 2、安装ssh sudo apt-get install openssh-server 3、ssh连接进行安装LAMP环境 启动ssh服务 /etc/init.d/ssh start 4、修改ssh连接乱码 进入系统后 sudo vim /etc/environment LANG=”zh_CN.UTF-8″ LANGUAGE=”zh_CN:zh” 修改为 LANG=”en_GB.UTF-8″ LANGUAGE=”en_US:en”
苦咖啡
2018/05/07
2K0
php使用Symfony EventDispatcher 组件
大家好,这篇文章将通过我在实际开发工作中的例子,来介绍Symfony的EventDispatcher组件的使用及实现原理。
OwenZhang
2021/12/08
2.1K0
Symfony 服务容器性能优化
本文是依赖注入(Depeendency Injection)系列教程的最后一篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括:
柳公子
2018/09/17
3.2K0
Symfony 服务容器性能优化
撸个 symfony4(一)
最近在看symfony,发现laravel里面也引用了这个框架,国内关于symfony的资料不是很多,但是体验了以下之后,感觉还是不错的,所以记录下踩坑之旅。这是[官方文档](https://symfony.com)
仇诺伊
2020/04/24
4640
撸个 symfony4(一)
撸个 symfony4(二)
目标其实是完成如下的需求,如果有想看源码的,可以看下sf官网出的一个demo。
仇诺伊
2020/04/24
2.5K0
撸个 symfony4(二)
关于symfony的serivce存在的意义
最近硬着头皮改了一个symfony的serivce 。 改完之后突然理解了symonfy启用service 的良苦用心。
lilugirl
2019/05/26
7140
有了这款神器,人人都是作曲家!
摘要:人工智能作曲APP Amper Music的简单介绍和测评,以及人工智能和机器学习的小科普
生信宝典
2019/10/15
5.5K0
基于 Symfony 组件封装 HTTP 请求响应类
上篇教程学院君给大家介绍了命名空间以及如何基于 Composer 来管理命名空间与 PHP 脚本路径的映射,自此以后,我们将基于这套机制来实现 PHP 类的自动加载和函数引入。
学院君
2020/08/18
8.7K0
基于 Symfony 组件封装 HTTP 请求响应类
Symfony 服务容器:使用建造者创建服务
本文是依赖注入(Depeendency Injection)系列教程的第 5 篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括:
柳公子
2018/09/17
2.6K0
Yahoo 书签系统使用 Php 语言的 symfony 框架
根据Yahoo 技术工程师 Michael Salisbury  介绍,Yahoo 书签使用 symfony 框架开发完成,他们选择 symfony 的理由如下:
田春峰-JCJC错别字检测
2019/02/14
1K0
如何提高编程能力?
其实很多人学编程都会遇到困难,我觉得其中一个根本原因是他们没搞明白学编程到底是学什么。
Daotin
2018/08/31
5930
Symfony 服务容器:使用 XML 或 YAML 文件描述服务
本文是依赖注入(Depeendency Injection)系列教程的第 5 篇文章,本系列教程主要讲解如何使用 PHP 实现一个轻量级服务容器,教程包括:
柳公子
2018/09/17
1.8K0
使用Symfony的Console组件构建命令行程序
我们新开设一门视频课程《构建命令行程序》。主要讲解如何使用symfony的console组件,构建命令行应用。在我们的印象中,php程序大部分是通过浏览器执行(即web应用)。在命令终端执行的应用,相对比较少。使用Laravel后,我们最常用的操作有: 创建数据库的migration文件 php artisan make:migration 创建模型文件 php artisan make:model 创建控制器文件 php artisan make:controller 开设这门课程的目标,是为Lara
企鹅号小编
2018/01/15
2K0
使用Symfony的Console组件构建命令行程序
谷歌首个AI版Doodle:向伟大作曲家巴赫致敬
3 月 21 日是著名音乐家约翰·塞巴斯蒂安·巴赫的生日,谷歌决定以一种特殊的方式向他致敬:让人人都能以巴赫的风格创作自己的乐曲。 通过机器学习算法,谷歌开发了 Coconet 多功能模型,可以让你用巴赫的风格演奏自己写下的乐谱。你也可以通过这个小工具来体验 AI 算法如何将一些我们熟悉的旋律「巴赫化」,亦或你和巴赫「合作」的乐曲将呈现出怎样更加现代摇滚的曲风。
机器之心
2019/04/29
7180
谷歌首个AI版Doodle:向伟大作曲家巴赫致敬
二叉树:总结篇!(需要掌握的二叉树技能都在这里了)
不知不觉二叉树已经和我们度过了「三十三天」,代码随想录里已经发了「三十三篇二叉树的文章」,详细讲解了「30+二叉树经典题目」,一直坚持下来的录友们一定会二叉树有深刻理解了。
代码随想录
2020/10/30
8390
二叉树:总结篇!(需要掌握的二叉树技能都在这里了)
哎,记者、设计师、作曲家……你们的饭碗还稳吗?
企鹅号小编
2017/12/28
9280
哎,记者、设计师、作曲家……你们的饭碗还稳吗?

相似问题

安装Symfony,作曲家

10

InvalidArgumentException作曲家安装symfony

34

symfony flex作曲家InvalidArgumentException

118

Symfony 2 ->作曲家和CloudControl

36

作曲家没有要求symfony/symfony在symfony 4上

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文