【发布时间】:2015-04-29 23:05:07
【问题描述】:
使用 C#,我正在尝试使用 ManageDHCP.dll 设置 dhcp 选项 12。简而言之,这就是我正在做的事情:
var dhcpManager = new DHCPManager(dhcpServerName)
var hostRecord = new HostInfo
{
Name = deviceDhcpName,
IPv4 = deviceIpAddress,
IsReserved = true,
MAC = deviceMacAddress
};
dhcpManager.SetRecord(dhcpServerScope, hostRecord);
String hostName = deviceDhcpName + "." + dnsZoneName;
var hostnameOpt = new Option
{
ID = 12,
Values = new List<string> { hostName }
};
dhcpManager.SetOption(hostnameOpt, dhcpServerScope, deviceIpAddress);
问题是,它此时就死了,日志没有记录异常。所以我在想也许我发送的格式不正确。所以我去尝试并获得一个选项。因此,在创建预订之后,使用上面的 SetRecord 函数 - 我改为调用它,只是为了尝试看看我是否可以获得查看正确格式的选项:
Option test = dhcpManager.GetOption(3, dhcpServerScope, deviceIpAddress);
抛出此异常:
ManageDHCP.DhcpException: DhcpGetOptionInfo at ManageDHCP.DHCPManager._GetOption(OptionTarget target, UInt32 optionID, String subnet, String reservedIP)
我是 C# 新手,我不确定是什么导致了这个异常。 Here 是指向 ManageDHCP 源代码的链接。我究竟做错了什么?我的格式不正确吗?
【问题讨论】:
-
您链接到的页面上提供的示例代码是否有效?
-
哪个链接?第二个链接是第一个链接中链接的库的源代码。它并没有真正展示如何使用它。
-
您的第一个链接:ManageDHCP - Manage your DHCP server from Powershell and ASP.NET。最后有一个代码示例。
-
这与我想要做的事情并不真正相关,即设置选项并创建记录,我认为我提供了正确的论点。获取只是为了检查格式,由于某种原因 enumOptions 与我提供的变量一起使用,所以我看到了所有选项元素,所以至少我到了某个地方。