簡體   English   中英

通過ax2012將xml文件上傳到ftp服務器

[英]upload xml file to ftp server via ax2012

我正在尋找通過dynamics ax 2012連接到ftp並在ftp服務器上上傳文件xml,我已經完成了該測試工作,但是我無法連接到ftp,但出現此錯誤Impossible de créer l'objet 'CLRObject'

static void uploadTestFile(Args _args) {
   System.Object ftpo;
   System.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;
   ;
   // Read file
   reader = new System.IO.StreamReader("ftp://net.sites.com/user/test.xml");
   utf8 = System.Text.Encoding::get_UTF8();
   bytes = utf8.GetBytes( reader.ReadToEnd() );
   reader.Close();
   // little workaround to get around the casting in .NET
   ftpo = System.Net.WebRequest::Create("ftp://net.sites.com/user/test.xml");
   request = ftpo;

   credential = new System.Net.NetworkCredential("login","pass");
   request.set_Credentials(credential);
   request.set_ContentLength(bytes.get_Length());
   request.set_Method("STOR");
   // "Bypass" a HTTP Proxy (FTP transfer through a proxy causes an exception)
   // request.set_Proxy( System.Net.GlobalProxySelection::GetEmptyWebProxy() );
   requestStream = request.GetRequestStream();
   requestStream.Write(bytes,0,bytes.get_Length());
   requestStream.Close();

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

引用此博客

axaptapedia.com再次節省了一天。 這次將我們指向Dynamics AX中.NET框架中的FtpWebRequest類 Axaptapedia頁面已完成,但遺漏了一個極薄的晶圓...異常處理。

將您的代碼與博客上的代碼進行比較,我會說它不適用於InteropPermission嗎? 此外,博客還提到在服務器上執行,這可以避免其他潛在的錯誤,例如未在系統上安裝ftp.exe ...您已檢查計算機上是否存在FTP客戶端,對嗎?

問題在於StreamReader初始化:

reader = new System.IO.StreamReader("ftp://net.sites.com/user/test.xml");

如果源文件來自FTP,則可以按以下方式重寫此部分:

System.IO.Stream responseStream;

ftpo = System.Net.WebRequest::Create("ftp://net.sites.com/user/testFrom.xml");
request = ftpo;

credential = new System.Net.NetworkCredential("login","pass");
request.set_Credentials(credential);
request.set_Method("RETR");

response = request.GetResponse();
responseStream = response.GetResponseStream();
reader = new System.IO.StreamReader(responseStream);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM