我试图使用下面的代码将文件上传到FTP服务器,但是我收到了一个套接字异常。有人能帮我解决这个异常吗?当我使用
我尝试在WebClient选项中设置凭据为
在远程FTP服务器上也遇到了同样的问题。
我正在使用.NET 4.7.1。
UploadFile(uri, filepath)
函数时也会遇到相同的问题。我尝试在WebClient选项中设置凭据为
NetworkCredentials
,但结果相同。在远程FTP服务器上也遇到了同样的问题。
我正在使用.NET 4.7.1。
byte[] xmlBytes = XmlDocumentToByteArray(xml);
WebClient webclient = new WebClient() {
Proxy = null
};
Uri uri = new Uri("ftp://test:test@localhost/test.xml");
//Uri uri = new Uri("ftp://localhost/test.xml");
webclient.UploadData(uri, xmlBytes);
异常: (英文:提供了无效的参数)
System.Net.WebException: Er is een ongeldig argument opgegeven ---> System.Net.Sockets.SocketException: Er is een ongeldig argument opgegeven
bij System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
bij System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6)
bij System.Net.PooledStream.Activate(Object owningObject, Boolean async, GeneralAsyncDelegate asyncCallback)
bij System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback)
bij System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout)
bij System.Net.FtpWebRequest.QueueOrCreateConnection()
bij System.Net.FtpWebRequest.SubmitRequest(Boolean async)
--- Einde van intern uitzonderingsstackpad ---
bij System.Net.WebClient.UploadDataInternal(Uri address, String method, Byte[] data, WebRequest& request)
bij System.Net.WebClient.UploadData(Uri address, String method, Byte[] data)
bij System.Net.WebClient.UploadData(Uri address, Byte[] data)
bij ProbeOrderPlacement.Order.OrderSubmit.SubmitOrder(XmlDocument xml) in H:\VSWorkspace\VSTS\Quantore\Probe\ProbeOrderPlacement\Order\OrderPlacement.cs:regel 28
也尝试了以下代码,但它抛出相同的异常(但在.GetRequestStream()
处)
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri("ftp://127.0.0.1/test.xml"));
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Proxy = null;
request.UseBinary = true;
request.Credentials = new NetworkCredential("test", "test");
request.ContentLength = xmlBytes.Length;
//Upload the data
using(Stream requestStream = request.GetRequestStream()) {
requestStream.Write(xmlBytes, 0, xmlBytes.Length);
}
异常: (英文:提供了无效的参数)
System.Net.WebException: Er is een ongeldig argument opgegeven ---> System.Net.Sockets.SocketException: Er is een ongeldig argument opgegeven
bij System.Net.Sockets.Socket..ctor(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
bij System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6)
bij System.Net.PooledStream.Activate(Object owningObject, Boolean async, GeneralAsyncDelegate asyncCallback)
bij System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback)
bij System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout)
bij System.Net.FtpWebRequest.QueueOrCreateConnection()
bij System.Net.FtpWebRequest.SubmitRequest(Boolean async)
--- Einde van intern uitzonderingsstackpad ---
bij System.Net.FtpWebRequest.GetRequestStream()
bij ProbeOrderPlacement.Order.OrderSubmit.SubmitOrder(XmlDocument xml)