C# 使用snmpsharpnet运行SNMP时出错

C# 使用snmpsharpnet运行SNMP时出错,c#,snmp,snmpsharpnet,C#,Snmp,Snmpsharpnet,我在使用snmpsharpnet库运行SNMP get命令时遇到问题。我正在编写一个示例,它们提供了一个运行简单get的示例,但它出错了。我已经测试过在盒子上运行这个OID,我能够得到响应,但是我不能用这个程序 我的代码如下所示: try{ SimpleSnmp snmp = new SimpleSnmp(HOST, COMMUNITY); Pdu pdu = new Pdu(); //pdu.Type = SnmpConstants.GETNEXT; // type

我在使用snmpsharpnet库运行SNMP get命令时遇到问题。我正在编写一个示例,它们提供了一个运行简单get的示例,但它出错了。我已经测试过在盒子上运行这个OID,我能够得到响应,但是我不能用这个程序

我的代码如下所示:

try{
    SimpleSnmp snmp = new SimpleSnmp(HOST, COMMUNITY);

    Pdu pdu = new Pdu();
    //pdu.Type = SnmpConstants.GETNEXT; // type GETNEXT
    pdu.VbList.Add(".1.3.6.1.2.1.1.1.0");
    Dictionary<Oid, AsnType> result = snmp.Get(SnmpVersion.Ver2,pdu); //.GetNext(pdu);
    if (result == null){
        Console.WriteLine("Request failed.");
    }else{
        foreach (KeyValuePair<Oid, AsnType> entry in result)
        {
            Console.WriteLine("{0} = {1}: {2}", entry.Key.ToString(), SnmpConstants.GetTypeName(entry.Value.Type),
            entry.Value.ToString());
        }
    }
}catch (Exception ex){
    Console.WriteLine("Error: " + ex + Environment.NewLine + "-------------------------------------------------------");
}
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
A first chance exception of type 'SnmpSharpNet.SnmpException' occurred in SnmpSharpNet.dll
The thread 0xeec has exited with code 259 (0x103).

提前谢谢

您没有收到远程主机对您发送的请求的响应。这就是套接字异常的原因。其中有3个,因为
SimpleSnmp
类的默认值是尝试3次从服务器发送和接收响应

如果将
snmp
对象的
Retry
属性设置为大于
2
的数字,它将发送更多请求并侦听更多响应,从而生成更多异常

snmp
的标准行为是不对(a)格式错误或(b)没有正确的社区字符串的请求生成任何响应


如果您已经展示了运行这段代码得到的控制台输出是什么,我很肯定它会说
请求失败。

您可能想提及如何从相关系统(例如snmpget)获得正确的结果。确保工作示例和提供的代码之间的主机和社区字符串匹配。检查
SimpleSnmp
实例的
Valid
属性。默认的
pdu.Type
GET
,但是为了安全起见,您可能应该设置它。您可以添加程序的输出吗?
Console.WriteLine
应在控制台中写入错误描述。锋利的snmp标记用于#snmp库。不要将其用于snmpsharpnet,因为它们是完全不同的东西。我得到的输出是上面原始帖子中显示的内容,在我的终端窗口中,我得到了“请求失败”。message感谢@Petesh的回复。很高兴知道这一点,我真的很想知道人们会如何改变这一点。今天早上我尝试为不同的设备更改主机和社区,第一次尝试时我收到了信息。然后我切换回去,三次检查主机和社区值,我仍然收到来自原始帖子的错误。@Ferbla,这表明您的代码是正确的。从您的症状来看,这听起来像(a)服务器实际上没有运行snmp服务,或者(b)防火墙干扰了您与服务器的通信。您应该使用来自不同机器的不同snmp客户端(2)检查来自同一机器的snmp访问(1)。如果它在不同的机器上工作,则表明存在连接/防火墙问题。感谢您的帮助。我将此应用程序移动到生产环境中,并通过了测试。这是一个防火墙问题。