所以今天我尝试通过SSHNet API 创建到远程主机的 SFtp 连接。快速而肮脏的控制台应用程序中的测试工作得很好,但是当在应该添加功能的项目中引用构建的 DLL 时,DLL 会引发异常。
调试项目,发现异常是在socket connect(或begin connect函数)上:
套接字操作遇到死网络。
如前所述,另一个项目中与具有相同参数的完全相同的服务器的连接工作得很好。
我检查了项目/解决方案配置。仔细检查服务器名称和其他参数,并制作了一个在特定项目中总是失败(无论是什么服务器)但在(新)项目中工作的测试用例:
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);
但这似乎不是一个奇怪的例子。有没有人以项目特定的方式处理过这种错误?有什么我想念的吗?
谢谢,