如何监控客户端与 WCF 服务的连接?

2024-03-19

我创建了一个 WCF 服务,其中 ServiceHost 类无法实例化为单例。我需要监视与该服务的每个连接,甚至在第一次调用与其关联的方法之前也是如此。在实践中,我想记录客户端何时打开与服务通信的通道。是否可以? 在网上我找到的解决方案只有两种:

  1. ServiceHost 对象必须由服务器实例化并用作单例。然后我必须提供一个由客户端调用的初始方法以将其自身注册到服务。
  2. 使用性能监视器显示与服务相关的计数器。

(1)和(2)都不能满足我的需求,因为我想创建自己的应用程序,并且正如我之前所说,我无法使用单例模式。 你有遇到过这样的问题吗?你是怎么做到的?

最后但并非最不重要的一点是,我还需要监视对服务提供的每个方法的调用。有没有办法做到这一点? 任何帮助将不胜感激。


这有很多问题。

首先,调用 WCF 服务的首选方法是每次调用模型,例如您的客户端将调用一个服务方法,这会导致在服务器上创建服务类的实例,执行相关方法,然后再次处理该服务实例。因此,您无法真正监视客户端连接本身 - 它们仅在调用执行时存在几分之一秒。

此外,除了性能计数器之外,服务器端实际上没有太多基础设施来监控每秒的调用次数等。新的服务器插件产品以前称为“Dublin”(当前称为“AppFabric”)应该在该领域(可管理性)带来相当多的改进 - 请参阅此MSDN 文章了解更多信息 http://msdn.microsoft.com/en-us/magazine/dd347832.aspx.

但即使在今天,您也可以设想采用服务类本身,并监视该类的实例化和销毁。服务类也有一个链接到ServiceHost通过实例化它OperationContext.Current.Host属性 - 因此您可以设想以某种方式向主机发出信号,表明已创建新的服务类实例。只能是单个主机对象,因此可以工作,但需要在 ServiceHost 上采用经过深思熟虑且经过充分测试的多线程安全方法(您可以创建自己的自定义 ServiceHost 来实现类似的功能)。

这可能是向“监控我的服务”方向迈出的一步。至于性能监控 - 为什么现有的数十个 WCF 性能计数器不能帮助您或为您提供所需的信息?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何监控客户端与 WCF 服务的连接? 的相关文章

  • Java 工具创建的 WSDL 文件的 WCF 序列化问题

    我的团队的任务是让几个内部开发的 NET 客户端应用程序连接到一些新的 Java Web 服务 Java Web 服务是第三方 供应商提供的 WSDL 文件 我们的团队修改 控制的能力有限 这意味着我们可能有权要求我们的供应商对 WSDL
  • iPhone / .NET WCF 互操作性

    我正在构建一个 NET Web 服务 和一个将使用这些服务的 iPhone 应用程序 我很好奇是否有任何构建两者之间交换数据的协议的最佳实践 对于我来说 基于 SOAP 的 Web 服务对于 iPhone 应用程序来说太沉重了 也许可以用
  • 在 WCF 服务上的 AJAX 发出 REST 请求期间启用 CORS 中的 OPTIONS 方法

    我花了7个小时绞尽脑汁想弄清楚这个问题 我在整个网络上进行了搜索 但没有运气 我有一个 Angular 应用程序正在向 WCF 命令行托管服务应用程序发出请求 我设法通过使用这两个类来实现 CORS public class CustomH
  • 在.Net中使用ObjectCache缓存对象并设置过期时间

    我陷入了一个场景 我的代码如下 更新 它不是关于如何使用数据缓存 我已经在使用它及其工作 它是关于扩展它 以便该方法在到期时间和从外部源获取新数据之间不会进行调用 object string this GetDataFromCache ca
  • WCF服务契约上的数据注释

    我有一个 WCF 服务 其中定义了一个 DataContract 类 每个属性都有 DataMember 属性 并且我已向其中几个属性添加了几个数据注释属性 Required 和 StringLength 然后 我在 ASP NET MVC
  • 数据库连接模拟失败

    我有一个 SL4 应用程序 它使用 WCF 与后端 SQL Server 2008 数据库进行通信 由于调用的存储过程需要数据库权限 其中一项 WCF 服务需要使用专用系统帐户连接到数据库 我尝试在服务代码中使用模拟来实现解决方案 例如 i
  • 优雅地终止 WCF 服务 - 完成所有打开的会话并限制新会话

    我有一个我编写的 WCF 服务 它托管在 Windows 服务中 它以 PerSession 模式运行 该服务允许客户端通过该服务远程打开文件 更改文件以及关闭文件 到目前为止一切工作都非常顺利 当 Windows 服务停止时 我希望能够让
  • 序列化 .NET WCF 服务的类型时出现问题:服务 WSDL 在 XSD 中定义空类型

    我正在使用 WCF 编写一个 Web 服务 我创建了数据合约 我创建了我的服务合同 界面 我定义了方法 其参数的类型与数据契约相同 我实现了创建服务类的服务合同 我使用 svc 文件和 IIS 托管我的服务 我尝试了我的服务 寻找http
  • WCF - IsOneway 的行为不像 Oneway 操作

    我已在服务的某些方法上定义了 OneWay 属性 但它们的行为并不像 Oneway 调用 我的客户等待呼叫完成并从服务返回 我假设单向操作是非阻塞操作 并且客户端不关心被调用函数会发生什么 它只是调用并忘记它 这是对的吗 问题 调用 Ope
  • EF 和 WCF 错误 - SQL Server Compact 不适用于 ASP.NET 开发

    您好 我有一个简单的 wpf 应用程序设置来使用在另一个项目中运行的测试 wcf 服务 该服务使用实体框架从附加到 wcf 服务项目的 SQL Compact 3 5 sdf 中检索几行 我收到 SQL Server Compact 不适用
  • 手动将 ClientBase 集合类型从 Array[] 更改为 List<>

    我将自己的 WCF 代理与 Client Base 一起使用 我想做一些类似于 svc util 中的 ct 属性的操作 并告诉代理返回 List 集合类型 我不能使用 List 因为实体由 nhibernate 管理 所以我必须使用 IL
  • ASP.Net Web API 与 WCF,我的项目中应该选择哪一个

    到目前为止 我已经在网络上阅读了很多关于 WCF 和 ASP Net Web API 之间的差异的文章 不幸的是 我无法清楚地知道什么才能达到我的目的 我读过的大多数文章都强调了这两个 Web 服务的设计观点 但我很困惑什么最适合我的项目
  • 如何从 Azure webjob 到 Azure webapp 进行通信?

    我正在运行 Azure Web 作业和 Azure Web 应用程序 该作业定期运行 并且 Web 应用程序需要作业的结果 我如何在那里得到结果 我尝试过使用 WCFnetNamedPipeBinding但由于 Azure webapps
  • 如何在WCF Rest服务中从流上传图像

    我正在尝试创建 wcf 服务 该服务将上传 pdf doc xls 图像等文件 但 pdf txt 文件正在上传并正确打开 但是当我尝试上传图像文件时 文件正在上传 但是图像不可见 OperationContract WebInvoke M
  • WCF 回调:它可以与 Java 互操作吗?

    目前 我以 正常 方式实现所有 Web 服务 也就是说 我在 Eclipse 中创建一个 WSDL 文件 然后使用 WSCF blue 一个 Visual Studio 扩展 自动生成必要的代码 它是回复 请求 不过 我希望改用回调 这样我
  • 我希望能够使用 lambda 表达式来指定要通过 wcf 服务返回的值范围

    我不知道这是否可能 但这会很酷 问题是这是否可能 但如果可能的话 举一个例子 我不确定您将使用什么方法签名来将 lambda 表达式传递到其中 例如方法IList
  • 如何在 REST WCF 服务中接受任意 JSON 对象?

    我想实现这样的服务方法 OperationContract WebInvoke RequestFormat WebMessageFormat Json ResponseFormat WebMessageFormat Json public
  • 测试项目和配置文件

    我的 Visual Studio 2008 解决方案中有这种设置 一个使用库 Lib1 需要 app config 文件中的一些配置条目 的 WCF 服务项目 WCFService 我有一个单元测试项目 MSTest 其中包含与 Lib1
  • 自定义 WCF DataContractSerializer

    是否可以用我自己的序列化程序替换 Windows Communication Foundation 中的 dataContractSerializer 如果可能的话 我怎样才能实现这一目标 是的 您可以提供自己的序列化器实现 默认情况下 W
  • 没有端点在 net.pipe://localhost/ 上监听

    我有两个 WCF 服务托管在 Windows Server 2003 计算机上的单个 Windows 服务中 如果 Windows 服务需要访问任一 WCF 服务 例如发生定时事件时 它将使用公开的五个命名管道端点之一 不同的服务协定 该服

随机推荐

  • 从 DBMS_SCHEDULER 运行 exe

    我是 DBMS SCHEDULER 的新手 我面临一些问题 我想运行 exe所以我创建了一个工作 begin sys dbms scheduler create job job name gt FTREC EXE 1 job type gt
  • 类模板参数推导完美转发

    我想了解演绎指南如何与通用参考一起使用std forward 特别是创建完美的转发包装器 下面的代码提供了在两种情况下试验函子包装器的代码 一种具有隐式推导指南 一种具有显式推导指南 我已经放了很多 and std forward在评论中
  • 如何按列对多维数组进行排序?

    有没有办法使用 sort 方法或任何其他方法按列对列表进行排序 可以说我有清单 John 2 Jim 9 Jason 1 我想对其进行排序 使其看起来像这样 Jason 1 John 2 Jim 9 做到这一点的最佳方法是什么 Edit 现
  • 错误:生成未知

    我正在尝试按照教程进行操作https docs angularjs org tutorial https docs angularjs org tutorial并且运行命令时出错 npm run protractor 这是控制台日志 Mic
  • 从 Woocommerce 中的产品 ID 获取所有订单 ID

    如何按产品 ID 获取包含订单 ID 的数组 我的意思是接收所有展示特定产品的订单 我知道如何通过 MySQL 来做到这一点 但是有没有办法通过WP Query功能 Updates 2017 SQL 查询更改为 SELECT DISTINC
  • Lime vs TreeInterpreter 用于解释决策树[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 石灰来源 https github com marcotcr lime https github com marcotcr lime 树解
  • 如何使用skia Sharp在画布上绘制PDF?

    我参考了skia的官方文档 https learn microsoft com en us dotnet api skiasharp skcanvas view skiasharp 1 68 1 constructing a pdf doc
  • C Master Volume Windows 中的 __uuidof

    我想用 C 改变主音量 但是 uuidof仅适用于 C 我可以用什么来代替它 const CLSID CLSID MMDeviceEnumerator uuidof MMDeviceEnumerator const IID IID IMMD
  • 在JavaScript中使用bind来避免闭包是否正确?

    闭包对于浏览器的内存来说是否太糟糕了 在 JavaScript 中使用 bind 避免闭包是一个好方法吗 现有代码 var oControl new Control var self this click function e closur
  • 我正在尝试使用 Firebase 在 Flutter 中使用 google 注销,但它不起作用

    我将 Flutter 与 Firebase 结合使用 当我尝试使用电子邮件和密码注销时 效果很好 但当我尝试使用谷歌时 它不起作用 这是我的代码 try switch user providerData 0 providerId case
  • IIS7 集成与经典管道 - 哪个使用更多 ASP.NET 线程?

    通过集成管道 所有请求都通过 ASP NET 传递 包括图像 CSS 而在经典管道中 默认情况下仅通过 ASP NET 传递对 ASPX 页面的请求 集成管道会对线程使用产生负面影响吗 假设我从 IIS 服务器请求 500 MB 二进制文件
  • Eclipse Oxygen 的 Lombok 问题

    我最近升级到了新的 Eclipse 版本 Oxygen 我从网站下载了 lombok jar 并安装了它 这就是如何eclipse ini安装后的样子 startup plugins org eclipse equinox launcher
  • Android Volley Https SSL 自签名和 Google Maps API

    我们正在使用 Android Volley 并使用可以正常工作的自认证 SSL 但现在我们想要实现 Google 地图 但它不起作用 它只是不会抛出任何错误 它只是显示一个灰色的屏幕 This is our implementation o
  • Shell脚本:在不排序的情况下查找整数序列中的最大值

    我有一个包含一长串整数的文件 10 4 66 我想使用 UNIX 命令行工具找到最大值 我知道我可以使用sort 事实上 这个问题有解决方案 使用sort 但是效率很低 需要 O N log N 和大量内存 通过一个简单的 for 循环 我
  • 为什么我的故事板中的视图控制器不断消失?

    我的故事板文件中的视图控制器不断消失 截至目前 我必须按向上箭头并突出显示每个项目才能恢复我的视图控制器 我可以做些什么来摆脱这个问题 还有什么我可以做的来将这些消失的视图控制器恢复到我的故事板上 这是一个错误 通常我可以通过关闭故事板并重
  • jquery只获取所有带有id的html元素

    我有一个 div 其中有很多 html 元素 如其他 div trs tds 表格等 是否可以获取所有具有 id 的元素 我知道问 test 会给我这个 id 的特定元素 但有可能得到find 或者类似的东西 id 返回所有设置了 id 的
  • WOW.js + 查询加载器 2

    我有一个问题WOW js https github com matthieua WOW and 查询加载器2 http gayadesign com diy queryloader2 preload your images with eas
  • vcruntime140.dll 与 vcruntime140d.dll

    这两个dll有什么区别vcruntime140 dll and vcruntime140d dll 为什么我们需要它们 它们都是 Microsoft Visual C 2015 Redistributable 的一部分吗 谷歌搜索了很长一段
  • 无论我做什么,NSLayoutManager 都会隐藏新行字符

    我正在尝试显示不可见的字符 例如 NSTextView 子类中的换行符 像重写 NSLayoutManager 的 drawGlyph 方法这样的常用方法是一个坏主意 因为它太慢并且无法在多页布局中正常工作 我想做的是重写 NSLayout
  • 如何监控客户端与 WCF 服务的连接?

    我创建了一个 WCF 服务 其中 ServiceHost 类无法实例化为单例 我需要监视与该服务的每个连接 甚至在第一次调用与其关联的方法之前也是如此 在实践中 我想记录客户端何时打开与服务通信的通道 是否可以 在网上我找到的解决方案只有两