1

我正在开发一个 C#(针对完整框架 4)Windows 应用程序。我需要该应用程序写入一些简单的计数器,更重要的是在发生重大应用程序事件时引发(或者应该触发)一些 SNMP 陷阱。

现在大多数 .NET SNMP 库都可以做到这一点,到目前为止一切都很好。但是,我还有一个重要的进一步要求;我的 MIB 必须添加到 PC 自己的 MIB,它不能用你的 Windows PC 替换所有“现成的”好的 SNMP 东西。

最后一个似乎很重要。迄今为止,我的所有调查都表明,任何 .NET SNMP 解决方案似乎都可以取代 Windows MIB 和 SNMP 服务;他们替换了 Windows MIB 来公开你的 MIB。我需要我的添加到 Windows。

该解决方案必须自己的 MIB 添加到 Windows 部署 PC,据我所知,这意味着它必须(至少部分地)提供非托管 SNMP 扩展 DLL 来扩展标准 Windows SNMP 服务。

  • 任何人都可以推荐一种方法来扩展标准 Winsows SNMP 服务,并为您自己的 MIB 提供非常适合托管代码的扩展代理吗?
  • 如果我必须为扩展代理做一些本机 Win32 C/C++/Delphi 工作,任何人都可以推荐一种方法来最大限度地减少所需的未管理代码量吗?
4

2 回答 2

1

如果要扩展 Microsoft 的 Windows SNMP 代理,则必须使用非托管语言。

使用托管语言的可能性很小,因为微软更喜欢 WMI 而不是 SNMP,并且不会对当前的 SNMP 代理进行任何更改。

您可以咨询商业 .NET SNMP 代理供应商,看看他们是否已经实现了您需要的所有必要对象。据我所知,开源/免费的 .NET SNMP 供应商没有那么多资源来实现这些。

于 2011-02-26T09:28:00.747 回答
0

我发现一个名为snmpsharpnet的程序集对于在 .NET 之上使用 SNMP 非常有帮助。

您将在此 StackOverflow答案中找到使用它的一种方式(高级)的示例。

但是看看文档。您可以通过两种方式使用此程序集:

  1. 低级别创建您自己的 SNMP(V1、V2c、V3)PDU
  2. 高级别,您只需使用 SNMP

就试一试吧。

另一种方法是在 Windows 顶部使用 NET-SNMP。我想你可以在 CygWin 上使用你的 Linux 工具。

J.P

PS:法国人可以在我的公司博客上找到这个大会的第一步

于 2011-03-25T06:29:26.227 回答