0

我有一种感觉,我们的 .NET 远程处理服务正在被挂在我们服务器上的对象实例所淹没。

我现在无法更改代码以添加额外的日志记录,因为这是已部署的生产实例。但是,我们有一个内置在应用程序中的代码控制台,可以让我们在服务器的应用程序域中执行任何代码。

因此,我正在寻找一种方法来获取当前存在于我们打开的远程处理通道的所有远程处理激活 (MarshalByRef) 对象的列表(或计数)。同样有用的是所有打开的客户端远程 Tcp 通道到我们服务器的列表/计数。

谁能告诉我如何在代码中做到这一点?

谢谢!

4

1 回答 1

4

有一些 .NET CLR Remoting 性能计数器可能会有所帮助:

.NET CLR 远程处理

  • 频道
  • 上下文代理
  • 加载的上下文绑定类
  • 上下文绑定对象 Alloc / sec
  • 上下文
  • 远程呼叫/秒
  • 远程呼叫总数

老实说,不确定是否对您的特定情况有帮助,但有一些事情需要调查......

您可以只使用 perfmon.exe 来查看它们,但如果您想从 C# 中进行查看,也相当容易。

于 2010-07-29T19:52:05.590 回答