使用IPAddress.Address会导致异常

Hol*_*lly 1 c#

我有一个旧服务,我通过以下方式比较2个IP地址(当服务启动时):

if (IPAddress1.Address == IPAddress2.Address)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

它在2003服务器上安装并启动时始终工作正常,但现在当我尝试在2008服务器上安装它时,我得到以下异常:

服务无法启动.System.Net.Sockets.SocketException:System.Net.IPAddress.get_Address()引用的对象类型不支持尝试的操作

(奇怪的是,当尝试在客户端2008服务器上安装并启动它时,它工作).

问题是什么?

Jam*_*mes 5

根据文档,Address属性现在已过时 - 建议您改用GetAddressBytes.

为了比较,尽管文档建议您使用 Equals

if (IPAddress1.Equals(IPAddress2))
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

  • 推荐的地方在哪里?http://msdn.microsoft.com/en-GB/library/system.net.ipaddress.address.aspx似乎建议使用`IPAddress.Equals` ... (2认同)