问题标签 [servicehost]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wcf - 捕获全局 WCF ServiceHost 请求事件
我正在使用一个由 WPF 应用程序托管的非常简单的 WCF 项目。它基本上作为 REST 服务器运行,用于在我的 PC 上提供数据。没有 IIS,它作为 SingleInstance 运行。我想看看哪些 IP 正在访问 MyService,以及他们试图调用哪些 WebMethod。
好的,所以我可以将一个事件作为我的服务的一部分,在服务类本身中声明。这是一些让它运行的代码,它完全按预期工作(m_
请不要起火;)):
然后在每个服务方法中,我可以引发此事件,以便我的应用程序知道有人尝试使用它。很棒,但让我们面对现实吧,这太可怕了。
我必须写一些类似的东西:
对于每个服务调用。
是否有更通用的包罗万象的事件可以检测到对我的服务的调用?我承认不完全理解的许多 Behaviour/ChannelDispatcher 类型中的一种可能会触发其中的一种。
谢谢你的帮助,汤姆
wcf - 在 VS 2008 中调用“更新服务参考”时如何绕过 WCF 服务的操作合同限制
我在使用应用程序中的单个 Wcf 服务时遇到问题。它里面有大约 150 个 [OperationContract]。我现在不能再在 Visual Studio 2008 中更新服务参考。
当我尝试调用更新时,我收到各种奇怪的错误,从“套接字强制关闭”到“无效类型”和其他奇怪的消息。如果我注释掉 10-20 个操作,它工作正常。
我在这里、MSDN 和许多博客上阅读了各种帖子。它们都指向需要更改的绑定配置,无论是在主绑定上还是在 MetadataExchange 绑定上。
我的问题是我已经尝试了所有这些,但还没有让它可靠地工作。
我在应用程序中自行托管服务,并且同一个应用程序也是客户端。它们共享相同的配置文件(当前),因为我们正在通过 Wcf 服务层将应用程序分成两部分。
以下是我定义的绑定的摘录:
我需要能够通过单击更新服务参考来生成代理类,这在过去两周内运行良好,直到我达到了这个神秘的限制。
我见过的大多数解决这个问题的例子都是关于 mex 的 http 绑定,但如果可能的话,我想坚持使用 netTcp,因为我是自托管的。
谁能帮帮我吗?
谢谢你。
* 更新 *
我已经尝试过@Aliostad 的建议,起初它似乎运作良好。直到我尝试了一些更新 UI 元素的 Wcf 调用。在将 NetTCP 绑定与 Visual Studios(添加服务引用)工具生成的代理类一起使用时,这些碰巧起作用。但是当使用 Channel Factory 时它不起作用。
我曾尝试查看 Juval 的 WCF 书中的 SyncrhonizationContext,但我所做的一切似乎都不起作用。
我尝试使用命名管道和 NetTCP 作为我使用 ChannelFactory 创建的 Channel 的绑定,它们的行为似乎与长时间运行的 Wcf 操作有很大不同,但两者都不能更新 UI 元素。
我的服务实际上是在 Rhino 3D CAD 引擎的插件中运行的,并且 Ceratin 调用(渲染等)会触发 Rhino 中的 UI 进行更新。我认为这会导致线程边界问题。我收到的异常是: 试图读取或写入受保护的内存
如果有人对在这种情况下有效使用 ChannelFactory 方法或解决给定 Wcf 类中操作过多以生成服务代理的问题有任何建议,我将不胜感激。
谢谢你!
c# - WCF 服务主机关闭被打开的会话阻止并且设置 receiveTimeout 没有帮助
我需要我的 WAS 托管服务(PerCall、Concurrency.Multiple)正常关闭/回收,但任何不活动(但打开)的客户端代理都会阻止服务正常关闭。
我曾预计receiveTimout 会启动并丢弃不活动的会话,但它看起来不像那样工作。
IIS/WAS 回收将调用 ServiceHost.BeginClose,并将关闭超时设置为 TimeSpan.MaxValue。
我需要使用 netTcpBinding 允许长期存在的客户端代理(我无法真正控制),因为吞吐量和低延迟是必须的。
我已经重现了下面的问题,并且很高兴获得任何解决方法和有关该问题的帮助。
wcf - WCF 本地计算机 ServiceHost 和管理员权限
有没有办法在本地用户(没有管理员权限)上使用 ServiceHost 运行自托管 WCF 服务?它只需要在本地计算机上。
我正在研究将来将安装在多个桌面上的应用程序,但目前它只需要在 1 个桌面上工作——服务器和客户端。我还想在 1 个 destop 应用程序中使用整个 wcf 堆栈来消除未来的问题。基本上 - 我需要在一个没有管理员权限的系统上启动 WCF 服务器和客户端。也许它可以用 netnamedpipebinding 来完成?
干杯,安德鲁
c# - 我可以在本地调用自托管 WCF 服务中的方法吗?
我有一个 WCF 服务合同,它基本上是发布订阅者模式。
WCF 服务托管在我要从中发布的 Windows 服务中。客户端订阅消息,当 Windows 服务执行某些操作时,它会发布给所有客户端。
为了托管服务,我声明了一个 ServiceHost 类,并且 Contract 类有一个方法,该方法未在接口中标记,但在要发布的类中实现。
我希望能够在本地调用此方法(不通过 WCF),然后通过回调发布消息。
我似乎无法从 ServiceHost 到 Contract Class 的实例。
这可能吗?如果可以,怎么办?我知道解决方法是在服务中也内置一个客户端,但是创建一个连接到自身的客户端似乎有点奇怪。
提前致谢
DJIDave
应用程序配置
c# - A registration already exists for URI after stop/start
I am currently working on an application where I am creating a ServiceHost, then getting rid of it, then recreating it later. The problem is that once I get rid of the service host when I try to recreate it I get the exception "A registration already exists for URI after stop/start." The weird thing is I have three separate hosts and one works and two don't. I assume something is not being disposed of properly but I'm not sure why.
I am creating the hosts like this
Then getting rid of them like so
I have also tried abort instead of close without any luck.
c# - NetNamedPipeBinding:管道方法中的参数为空
我有一个在 NetNamedPipeBinding 端点上侦听的 ServiceHost。我有一个服务合同类,它有一个方法,由客户端调用并由服务器处理。该方法(我们称之为 PipeRequest())有一个 Request 参数。在客户端,我填充了这个对象,但是当它被发送到服务器时它是空的。任何想法为什么会这样?
wcf - 通过 DI 的 WCF 构造函数服务类型
我目前正在尝试构建一个小型 App-Server 来托管多个 WCF 服务。这些服务(当然还有它们的依赖项)应该由 DI/IoC 容器(目前是 LightCore,但由于我通过 CommonServiceLocator 使用它,应该很容易交换)来实例化。不幸的是,我偶然发现了一个问题。显然我必须创建 ServiceHost 实例来托管提到的 WCF 服务。我已经构建了一个自定义的 InstanceProvider 和 ServiceBehavior 来处理服务的所有依赖项,但是 ServiceHost 的构造函数需要服务的服务类型来托管。此时在我的程序中,我只知道接口类型,因为只有 DI 容器知道当前正在使用哪个服务实现。
一种廉价的方法是通过 Service Locator 创建服务类型的“虚拟”实例,并为 ServiceHost 构造函数提供 myDummyInstance.GetType() 的输出,但这只会伤害到服务定位器的无用实例化和使用,而不是DI ...必须有更好的方法。
有什么想法吗?:)
wcf - WCF 服务:app.config 与属性或两者的混合
在 WCF 应用程序中,我们有一个带有属性的服务契约:
具有属性的服务合同的实现:
服务主机(用于开发的 Windows 服务或控制台应用程序)
最后但并非最不重要的一个 app.config:
问题:是否可以混合 app.config 和属性,哪个配置优先,什么是好的做法?
例如,ServiceContract(SessionMode = SessionMode.NotAllowed) 是否会阻止 wsHttpBinding 使用会话?
[回答:我如何确定 app.config 中的设置真的被应用了——完全限定名称有效。]
wcf - NServiceBus 和 wcf 服务主机
我有一个 wcf ServiceHost,它必须向 IBus 发布消息。
如何从主机类(由 wcf 实例化)优雅地获得对 IBus 的访问权限?