साथ मैं एक की मेजबानी सर्वर है कि मैं के लिए भुगतान कर रहा हूँ के साथ काम करने के लिए अपने कस्टम एफ़टीपी वर्ग को लागू किया। मैं अपने एप्लिकेशन के बैकअप, पुनर्स्थापित और अद्यतन के लिए एफ़टीपी का उपयोग करता हूं। अब मैं फिलहाल हूं जहां मैं इसे एसएसएल को उत्पादन में रखने के लिए सक्षम करना चाहता हूं। मैंने अपनी होस्टिंग कंपनी से पूछा कि क्या वे एसएसएल प्रोटोकॉल का समर्थन करते हैं और उन्होंने कहा कि वे करते हैं।FtpWebRequest EnableSSL
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(m_ftpAddress.Trim()));
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(m_ftpUsername, m_ftpPassword);
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(ValidateServerCertificate);
X509Certificate cert = new X509Certificate(path to a certificate created with makecert.exe);
reqFTP.ClientCertificates.Add(cert);
reqFTP.AuthenticationLevel = AuthenticationLevel.MutualAuthRequested;
reqFTP.ImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Identification;
reqFTP.EnableSsl = true;
अब, MSDN का कहना है कि सर्वर SSL प्रोटोकॉल का समर्थन करता है, तो फेंक और अपवाद नहीं होगा जब प्राधि TLS के साथ पूछा:
तो मैं कुछ इस तरह करने के लिए Microsoft MSDN ट्यूटोरियल के बाद मेरे पद्धति में सुधार किया। यह ट्रेस लॉग में देखा जा सकता है। तो मुझे लगता है कि यह एक सर्वर मुद्दा नहीं है।
System.Net Error: 0 : [0216] Exception in the FtpWebRequest#12547953::GetResponse - The remote server returned an error: 227 Entering Passive Mode (the IP and port number).
मैं गलत पर
reqFTP.UsePassive = true;
संपत्ति की स्थापना की कोशिश की और फिर मैं:
प्रमाणीकरण चरण के बाद सर्वर जो त्रुटि से चलाता है एक
System.Net Information: 0 : [0216] FtpControlStream#41622463 - Received response [227 Entering Passive Mode (the IP and port number).]
संदेश देता है यह त्रुटि:
System.Net Information: 0 : [2692] FtpControlStream#4878312 - Received response [500 Illegal PORT command]
बेशक, EnableSLL प्रॉपर्टी के बिना सत्य सब कुछ सेट किए बिना काम करता है।
किसी को भी इस पर कोई विचार है?
संपादित करें:
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(m_ftpAddress.Trim()));
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(m_ftpUsername, m_ftpPassword);
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
ServicePointManager.ServerCertificateValidationCallback = new
System.Net.Security.RemoteCertificateValidationCallback(ValidateServerCertificate);
reqFTP.ClientCertificates.Add(cert);
reqFTP.AuthenticationLevel = AuthenticationLevel.MutualAuthRequested;
reqFTP.ImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Identification
reqFTP.EnableSsl = true;
ValidateServerCertificate
हमेशा रिटर्न सच: मैं fallows के रूप में कोड को संशोधित किया। इस संशोधन के बाद प्रभाव कोई नहीं है।
और मुझे समझ नहीं आता:
- इस पल में आवेदन सर्वर प्रमाणपत्र, सही उपयोग कर रहा है?
- और संशोधनों से पहले भी मेरा उपयोग कर रहा था?
क्या कोई मेरी व्याख्या करता है कि यह कैसे काम करता है?
संपादित करें: होस्टिंग कंपनी के साथ कई ईमेल का आदान-प्रदान करने के बाद यह पता चला कि उन्हें उनके एफ़टीपी सॉफ्टवेयर के साथ समस्याएं थीं और कोड के साथ कोई समस्या नहीं थी।
फिर अपना संपादन उत्तर के रूप में पोस्ट करें और इसे स्वीकार करें। –