Как открыть удаленный текстовый файл с помощью Server.MapPath в ASP.Net? - PullRequest
1 голос
/ 21 марта 2010

Это то, что у меня сейчас есть для файла, находящегося на том же сервере, и он работает.

Dim FILENAME as String = Server.MapPath("Output.txt")

Dim objStreamWriter as StreamWriter
objStreamWriter = File.CreateText(FILENAME)

dr = myCommand.ExecuteReader()
While dr.Read()

objStreamWriter.WriteLine("{0}|{1}|{2:yyyy-MM-dd}|{3:yyyy-MM-dd}", dr(0),  dr(1), dr(2), dr(3))

End While
objStreamWriter.Close()

Я планировал передать файл FTP на другой сервер, но есть ли способ сделать это на удаленном сервере? Т.е. создать текстовый файл на удаленном сервере и записать на него? Не найдено ни одного экземпляра такого использования. Как использовать ServerXMLHTTP для замены Server.MapPath в этом случае?

Большое спасибо за ваше время.

1 Ответ

1 голос
/ 21 марта 2010

Использование MapPath и StreamWriter таким способом не будет работать. Это предназначено для сценария локального файла. Вы можете напрямую передавать файлы FTP из .net, используя FtpWebRequest .

Вот пример использования FtpWebRequest для записи файла (пример из здесь ):

        FtpWebRequest request =
            (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/output.txt");
        request.Method = WebRequestMethods.Ftp.UploadFile;

        // This example assumes the FTP site uses anonymous logon.
        request.Credentials = 
            new NetworkCredential ("anonymous","janeDoe@contoso.com");

        Stream requestStream = request.GetRequestStream();
        requestStream.Write(stuff); // write your stuff here
        requestStream.Close();

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

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

        response.Close();
...