在Windows 7(.Net 4.6.1)上,我对此代码感到异常:
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.IOControl(-1744830448, new byte[4] { 1, 0, 0, 0 }, null);
引用的对象类型不支持尝试的操作 在System.Net.Sockets.Socket.IOControl(Int32 ioControlCode,Byte [] optionInValue,Byte [] optionOutValue)
这适用于我的VM上的Windows 8。
答案 0 :(得分:0)
使用SIO_LOOPBACK_FAST_PATH = -1744830448和IOControl方法 Windows 7不支持,因此会发生异常。
来自the MSDN documentation for SIO_LOOPBACK_FAST_PATH:
引用的对象类型不支持尝试的操作。如果不支持指定的IOCTL命令,则会返回此错误。如果在Windows 7,Windows Server 2008 R2和早期版本上使用SIO_LOOPBACK_FAST_PATH IOCTL,则会返回此错误。
如果传输提供程序不支持SIO_LOOPBACK_FAST_PATH IOCTL,也会返回此错误。