【问题标题】:Dynamics AX FTP动态 AX FTP
【发布时间】:2013-04-24 15:34:55
【问题描述】:

我在 ftp 上发送 csv 文件时遇到问题,我使用在 AxaptaPedia 上找到的以下代码:

object ftpo;
object ftpResponse;
System.Net.FtpWebRequest request;
System.IO.StreamReader reader;
System.IO.Stream requestStream;
System.Byte[] bytes;
System.Net.NetworkCredential credential;
System.String xmlContent;
System.Text.Encoding utf8;

System.Net.FtpWebResponse response;
;
reader = new System.IO.StreamReader(strfmt("%1%2","\\\\Server\\directory\\","Export.csv"));
utf8 = System.Text.Encoding::get_UTF8();
bytes = utf8.GetBytes( reader.ReadToEnd() );
reader.Close();

ftpo = System.Net.WebRequest::Create(strfmt("%1%2","ftp://IP_Address/directory/","Export.csv"));
request = ftpo;

credential = new System.Net.NetworkCredential("user","password");
request.set_Credentials(credential);
request.set_ContentLength(bytes.get_Length());
request.set_Method("STOR");

requestStream = request.GetRequestStream();
requestStream.Write(bytes,0,bytes.get_Length());
requestStream.Close();

ftpResponse = request.GetResponse();
response = ftpResponse;
info(response.get_StatusDescription());

没有编译错误,没有执行错误但文件没有上传到我的FTP上,我认为问题出在路径文件编码上,我尝试了其他解决方案没有结果。我想批量处理 FTP 上的发送文件,它使用 wininet 类工作,但 wininet 类不能在服务器端运行,所以我必须使用 .net 框架。 欢迎任何想法或解决方案

感谢帮助

【问题讨论】:

  • 我假设您已将 IP_Address 更改为正确的服务器或 IP 地址?
  • 是的,这是一个例子
  • 这是我与 wininet 类一起使用的语法,它工作得很好,我需要找到一个在 System.IO.StreamReader(..) 和 System.Net.WebRequest::create 中工作的工作语法(..)
  • 很明显但是... "\\Server\directory\" 当然可以从客户端获得,但是请从服务器上检查是否安装了 Ax 服务。 “IP_Address/directory”路径和传输都相同(可能无法从服务器上的端口 20/21 进行 ftp)。

标签: .net ftp axapta x++


【解决方案1】:

我在将文件保存到任何网络目录时遇到了这个问题,而不仅仅是 FTP。对我有用的是为服务器和文件名创建单独的变量,并使用连接而不是字符串格式(StrFmt)。由于某种原因,字符串格式只是默默地无法工作,而连接确实有效:

str  server = "\\\\Server\\directory\\";
str  fileName = "Export.csv";
Net.WebRequest::Create(server + fileName);

此外,最佳做法不是对这些值中的任何一个进行硬编码。您应该创建一个参数表来存储这些值并调用该表以查找这些值并将它们分配给您的变量,或者使用对话框在运行时从用户那里获取输入。这样可以避免将来任何人在 FTP 服务器发生更改时都必须更改代码,也可以避免文件名更改的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    相关资源
    最近更新 更多