如何在ASP.Net中使用Server.MapPath打开远程文本文件?

时间:2010-03-21 13:57:24

标签: asp.net ftp remote-file-inclusion

这就是我现在所拥有的文件,它位于同一台服务器上并且可以正常工作。

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 个答案:

答案 0 :(得分:1)

使用MapPathStreamWriter这种方式无效。这适用于本地文件方案。您可以使用FtpWebRequest直接从.net FTP文件。

以下是使用FtpWebRequest编写文件的示例(来自here的示例):

        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();