寻找.NET SNMP扩展代理

时间:2011-02-20 15:00:37

标签: .net windows .net-4.0 snmp mib

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

现在大多数可用的.NET SNMP库可以做到这一点,到目前为止一切顺利。但是我有一个重要的进一步要求;我的MIB必须添加到PC自己的MIB中,它不能取代所有与你的Windows PC“无关紧要”的好东西。

这最后一个似乎是个大问题。我迄今为止的所有调查表明,任何.NET SNMP解决方案似乎都取代了Windows MIB和SNMP服务;他们取代Windows MIB来揭露你的。我需要添加我的Windows。

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

  • 任何人都可以推荐一种扩展标准Winsows SNMP服务的方法,该扩展代理适用于您自己的MIB,非常适合托管代码吗?
  • 如果我必须为扩展代理做一些原生的Win32 C / C ++ / Delphi工作,那么任何人都可以推荐一种能够最大限度地减少所需的无人值守代码量的方法吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

您会在this StackOverflow中找到使用它的单向(高级)示例。

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

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

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

    JP

    PS:法国人可以找到这个集会的第一步on my company blog