2012-04-27 9 views
6

मैं सी # में ftpWebRequest उपयोग करने के लिए कोशिश कर रहा हूँ लॉगिन नहीं मेरी कोडएक त्रुटि के साथ ftpWebRequest का उपयोग कर: दूरस्थ सर्वर से त्रुटि आई 530 में

// Get the object used to communicate with the server. 
      FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://192.168.20.10/file.txt"); 
      request.Method = WebRequestMethods.Ftp.UploadFile; 

      // This example assumes the FTP site uses anonymous logon. 
      request.Credentials = new NetworkCredential("dev\ftp", "devftp"); 

      // Copy the contents of the file to the request stream. 
      StreamReader sourceStream = new StreamReader(@"\file.txt"); 
      byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd()); 
      sourceStream.Close(); 
      request.ContentLength = fileContents.Length; 
      request.UsePassive = true; 
      Stream requestStream = request.GetRequestStream(); 
      requestStream.Write(fileContents, 0, fileContents.Length); 
      requestStream.Close(); 

      FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 

      Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription); 

      response.Close(); 

है और मैं (request.GetRequestStream में कोई त्रुटि मिलती है); त्रुटि यह है: रिमोट सर्वर ने में लॉग इन नहीं किया है, अगर मैं ब्राउज़र पेज पर जाने की कोशिश करता हूं और यूआरएल में ftp://192.168.20.10/ ब्राउज़ पेज मुझे नाम और पासवर्ड के लिए पूछ रहा है, तो मैं वही नाम डालता हूं और पासवर्ड और मैं ftp फ़ोल्डर में सभी फाइलें और फ़ोल्डर्स देखता हूं।

उत्तर

15

चाहिए लाइन नहीं:

request.Credentials = new NetworkCredential("dev\ftp", "devftp"); 

हो:

request.Credentials = new NetworkCredential("dev\\ftp", "devftp"); 

या:

request.Credentials = new NetworkCredential(@"dev\ftp", "devftp"); 

मैं इस अपने समस्याएं उत्पन्न कर सकता है, क्योंकि है \ च विश्वास करना होगा एक फार्म फ़ीड चरित्र।

6

मुझे पता चला कि .NET/C# के माध्यम से एक FTP सर्वर पर कनेक्ट करते समय कुछ वर्ण "मान्य" नहीं होते हैं। केवल केवल अक्षर और अंक के लिए लॉगइन क्रेडेंशियल्स स्थापित करने के बाद [एक-Z0-9] यह लॉग इन करने के लिए काम किया

+0

यह काम किया! धन्यवाद – user5071155

7

ही समस्या का सामना करते हुए यहां मेरे समाधान है:।

request.Credentials = new NetworkCredential(
    usernameVariable.Normalize(),passwordVariable.Normalize(),domainVariable.Normalize()); 

विवरण पाया जा सकता है here

उम्मीद है कि यह मदद करता है।

0

उपयोगकर्ता नाम या पासवर्ड से दोहरे उद्धरण को हटाएं क्योंकि कभी-कभी उपयोगकर्ता नाम या पासवर्ड में $ साइन इन समस्या का कारण बनता है। हर बार सिंगल कोट का उपयोग करना अच्छा होता है।

+0

डॉन कई सवालों के जवाब देने के लिए मत जाओ। एक दूसरे के डुप्लिकेट के रूप में चिह्नित करने के लिए शायद यह बेहतर है। – Jaap

+0

@ जैप आपके मार्गदर्शन के लिए धन्यवाद। –

संबंधित मुद्दे