[英]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.