首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >WCF Windows服务消费服务嵌入Windows窗体

WCF Windows服务消费服务嵌入Windows窗体
EN

Stack Overflow用户
提问于 2012-10-25 09:05:54
回答 1查看 417关注 0票数 0

我有一个WCF库的Windows服务。在同一台机器上,我有一个Windows窗体应用程序,其中嵌入了WCF服务。当我试图从Windows服务中使用表单中的服务时,我的问题就出现了。

表单中的WCF服务有一个"basicHttpBinding“端点,还有一个"mexHttpBinding”端点。我能够用'WCF测试客户端‘来测试表单中的服务,没有任何问题。

在Windows中,我能够向表单的服务添加一个Service引用,一切都很好。但是,当我实际运行Windows服务并尝试使用表单中的WCF服务时,我会得到以下错误:

由于/shutMeDown的ContractFilter不匹配,无法在接收端处理带有动作‘EndpointDispatcher’的消息。这可能是因为契约不匹配(发送方和接收方之间的操作不匹配),或者是发送方和接收方之间的绑定/安全不匹配。检查发送方和接收方是否具有相同的合同和相同的约束力(包括安全要求,例如消息、传输、无)。

看到里面的"IService1“了吗?我很确定这就是问题所在。Windows本身被配置为承载一个名为"Service1“的服务,如您在下面的<services>部分中所看到的。所以我的app.config好像出了点问题。

我最好的猜测是,我在app.config中设置app.config的方式有问题。看起来,由于某种原因,当我试图使用表单中的服务时,使用的地址是错误的。它使用的是它自己的服务地址,而不是表单服务的地址。

下面是来自我的Windows的app.config的相关部分:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_IFormControlService" />
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost:8700/FormControlService"
        binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IFormControlService"
        contract="Form_ServiceReference.IFormControlService" name="BasicHttpBinding_IFormControlService" />
    </client>
    <services>
      <service name="smMonitor_wcfServiceLibrary.Service1">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8800/smMonitorService/" />
          </baseAddresses>
        </host>
        <endpoint address="" binding="basicHttpBinding" contract="smMonitor_wcfServiceLibrary.IService1">              
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>            
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>              
          <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True" />
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

我的安排是这个。我在一台机器上运行一个Windows服务。在同一台机器上,我有一个Widows表单。Windows窗体公开允许Windows服务与其交互的服务。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-25 11:50:08

我的问题如下。我只定义了传出的<bindings>。我需要做的是定义传入绑定和传出绑定,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    <bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IService1" />
            <binding name="BasicHttpBinding_IFormControlService" />
        </basicHttpBinding>
    </bindings>

由于未定义传出绑定,所以我的Windows正在查看<basicHttpBinding>并仅使用默认绑定。

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

https://stackoverflow.com/questions/13073673

复制
相关文章
IronPython 承载和消费WCF服务
是开始学习IronPython 的时候了文章里谈到了“IronPython 2.6提供了新特性clrtype,允许程序员用纯IronPython代码提供property、attribute等CLR类型信息。这样IronPython代码就可以无缝地与Sliverlight、WCF等框架集成。”我们就用clrtype来看看怎么承载WCF服务和消费WCF服务。WCF的契约需要定义接口,这是目前IronPython 尚未支持的功能,所以我们先用C#定义个一个WCF的契约: using System; using
张善友
2018/01/22
9340
IronPython 承载和消费WCF服务
移植Windows自宿主WCF服务到Linux/Mono2.8
Windows服务是这些后台程序、后台服务的正规名词。Windows服务的运行可以在没有用户干预的情况下,在后台运行,没有任何界面。通过Windows服务管理器进行管理。服务管理器也只能做些简单的操作:开始,暂停,继续,停止。Windows服务的特点:在后台运行,没有用户交互,可以随Windows启动而启动。 后台服务在Unix/Linux上叫做Daemon,在Linux系统中就包含许多的Daemon。判断Daemon最简单的方法就是从名称上看。Linux下自动启动的服务都在/etc/rc.d/init.d
张善友
2018/01/19
1.3K0
移植Windows自宿主WCF服务到Linux/Mono2.8
windows sftp服务[web服务器在哪打开]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说windows sftp服务[web服务器在哪打开],希望能够帮助大家进步!!!
Java架构师必看
2022/02/19
10.7K0
Windows服务编程
一、服务(Service) 服务程序是NT系统支持的一种可执行文件,通常服务程序不与用户进行交互,在系统启动时会自动启动服务程序。所有的服务程序都由SCM进行管理,每个服务程序必须符合SCM所定义的规范。
欧阳大哥2013
2018/10/25
1.8K0
Python制作Windows系统服务Python制作Windows系统服务
Python制作Windows系统服务 最近有个Python程序需要安装并作为Windows系统服务来运行,过程中碰到一些坑,整理了一下。 Python服务类 首先Python程序需要调用一些Windows系统API才能作为系统服务,具体内容如下: #!/usr/bin/env python # -*- coding: utf-8 -*- import sys import time import win32api import win32event import win32service import
kongxx
2018/05/14
4.4K2
使用C#创建及调用WCF完整实例 (Windows服务宿主)
关于WCF的概念、原理、优缺点等,在这里就不多说了,网上很多,可以自行搜索,比我解释的要专业的多。 这里直接说使用Windows 服务(Windows Service)作为宿主如何实现,其它方式不在此
庞小明
2018/03/12
4.8K0
使用C#创建及调用WCF完整实例 (Windows服务宿主)
Windows 服务 同时启动多个服务
最近需要开发 Windows Service 程序,之前没有接触过,所以把了解到的一些东西记录下来。
独立观察员
2022/12/06
1.6K0
Windows 服务 同时启动多个服务
windows服务控制类
http://www.cnblogs.com/yanweidie/p/3542670.html
跟着阿笨一起玩NET
2018/09/19
5550
ServiceController操作Windows服务
使用.Net框架类库中自带的组件ServiceController可以实现对Windows服务的操作。创建 ServiceController 的实例后,必须为其设置两个属性来标识与其交互的服务:计算机名称和要控制的服务的名称,MachineName 默认设置为本地计算机,除非想将该实例设置为指向另一台计算机不,否则不要修改。
张果
2022/05/09
5570
ServiceController操作Windows服务
windows服务管理操作
服务程序是windows上重要的一类程序,它们虽然不与用户进行界面交互,但是它们对于系统有着重要的意义。windows上为了管理服务程序提供了一个特别的程序:服务控制管理程序,系统上关于服务控制管理的API基本上都与这个程序打交道。下面通过对服务程序的操作来说明这些API函数
Masimaro
2019/02/25
1.8K0
Windows服务小结 1
Windows 服务(即,以前的 NT 服务)使您能够创建在它们自己的 Windows 会话中可长时间运行的可执行应用程序。
小蜜蜂
2019/09/09
4690
windows安装Nginx服务
解压安装包到一个没有中文的目录里。 比如我的目录为:E:\nginx-1.18.0
李小白是一只喵
2021/03/03
8960
Windows服务小结 2
本文主要讨论上面三个问题。因为在我们开发完一个服务之后,我们需要把它安装在不同的环境中,以及如何卸载它。
小蜜蜂
2019/09/09
4710
Windows服务小结 2
Windows服务框架与服务的编写
从NT内核开始,服务程序已经变为一种非常重要的系统进程,一般的驻守进程和普通的程序必须在桌面登录的情况下才能运行,而许多系统的基础程序必须在用户登录桌面之前就要运行起来,而利用服务,可以很方便的实现这种功能,而且服务程序一般不予用户进行交互,可以安静的在后台执行,合理的利用服务程序可以简化我们的系统设计,比如Windows系统的日志服务,IIS服务等等。 服务程序本身是依附在某一个可执行文件之中,系统将服务安装在注册表中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services位置,当需要执行服务程序时,由系统的服务控制管理器在注册表中对应的位置读取服务信息,并启动对应的程序。 下面从几个方面详细说明服务程序的基本框架
Masimaro
2018/08/31
1.6K0
C# Windows服务开发
我要开发一个系统服务,服务的作用是定时检测并关闭其他应用的弹窗,但是开发后却发现,服务在运行是压根获取不到任何窗口。
码客说
2022/05/23
1.3K0
C# Windows服务开发
使用Topshelf创建Windows 服务
Winndows Service 是一种可随 Windows 操作系统启动而启动的,在后台运行的,通常不和用户产生交互的程序。它无法通过双击来运行,类似于 Unix 守护进程(daemon processes),当用户注销时它也不会停止。 Windows 服务由三部分组成: 一个服务可执行文件; 一个服务控制程序(SCP); 服务控制管理器(SCM),负责在 HKLM"SYSTEM"CurrentControlSet"Services 下创建服务键值。用户可通过 SCP 控制服务的启动、停止、暂停等,SCP
张善友
2018/01/19
1K0
aria2 for windows 服务
aria2 for windows 服务 下载 github 下载 aria2-1.31.0-win-64bit-build1.zip 配置文件: aria2.conf 解压zip文件,命令行运行 aria2c.exe --conf-path=./aria2.conf 看提示,可能要新建aria2.session(配置文件中)文件 webUI 下载 解压后,运行index.html 服务运行 下载SrvanyUI_1.0.zip 新建自建服务即可
qinyang
2018/06/05
2.4K0
Windows查看服务占用端口
名词解释: 服务:电脑访问数据库,其实数据库就是一种服务。服务必须要开启后,才能对其进行访问。而电脑开启1个服务,这个服务在电脑中就是1个进程。 PID:process identification的简称,进程识别符,一般是10进制的数字。 在Windows系统中查看服务的PID的方法是打开任务管理器,进入详细信息页面。 如果打开任务管理器时是简略信息页面,点击“详情信息”按钮,如下图所示:
潇洒坤
2018/09/10
23.5K0
Windows查看服务占用端口
使用Topshelf创建Windows 服务
http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html
跟着阿笨一起玩NET
2018/09/19
9330
用.NET创建Windows服务
译者说明:我是通过翻译来学习C#的,文中涉及到的有Visual Studio.NET有关操作,我都根据中文版的VS.NET显示信息来处理的,可以让大家不致有误解。
Java架构师必看
2021/03/22
1.1K0

相似问题

Windows窗体和WCF服务

12

WCF请求来自windows窗体,而不是windows服务。

12

WCF:从服务内部访问windows窗体

22

WCF,从服务访问windows窗体控件

50

使用wcf服务Windows窗体应用程序

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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