项目特定套接字异常:找到死网络

时间:2013-03-01 16:36:52

标签: c# sockets

所以今天我尝试通过SSHNet API创建到远程主机的SFtp连接。快速而肮脏的控制台应用程序中的测试工作得非常好,但是当在应该添加功能的项目中引用构建的DLL时,DLL会抛出异常。

调试项目,异常结果是在套接字连接(或开始连接功能)上:

  

套接字操作遇到死网络。

如前所述,另一个项目中具有相同参数的完全相同的服务器的连接工作正常。

我检查了项目/解决方案配置。仔细检查服务器名称和其他参数并制作一个测试用例,在特定项目中总是失败(无论什么服务器)但是(新)项目中的WORKS:

var ep = new IPEndPoint(IPAddress.Parse(IPAdres),Port);
var sock = new Socket(ep.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

sock.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.NoDelay, true);

//  Connect socket with specified timeout
var connectResult = sock.BeginConnect(ep, null, null);

if (!connectResult.AsyncWaitHandle.WaitOne(180, false))
{
    throw new Exception("Timeout");
}

sock.EndConnect(connectResult);

但这似乎不是一个奇怪的例子。 有没有人以项目的具体方式遇到过这种错误?有什么我想念的吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

也许图书馆使用了错误的网卡?

我在使用.net CF 2.0的Windows CE设备上遇到此异常。在我的情况下,我正在为GPRS接口创建一个套接字,但该设备是通过以太网连接的。