顯示具有 FTP 標籤的文章。 顯示所有文章
顯示具有 FTP 標籤的文章。 顯示所有文章

Microsoft Biztalk 2020的SFTP功能找不到WinSCPnet.dll錯誤處理

Microsoft Biztalk 2020的SFTP功能找不到WinSCPnet.dll錯誤處理

Microsoft Biztalk是一套專注於B2B資料交換的平台軟體。除了大型B2B(例如:EDI、RosettaNet)之外,一般常見的檔案傳輸方式也是有支援,例如:FTP。我們有個SFTP的定時上傳檔案需求,一般可能寫個C# Console或PowerShell加上排程來處理。但Biztalk本身內建了許多Adapter,其中包含了SFTP Adapter,透過設定就能做到的事情,當然選擇Biztalk來做。

使用PowerShell動態建立C#物件進行FTPS檔案上傳

使用PowerShell動態建立C#物件進行FTPS檔案上傳

早先在 PowerShell 以 Posh-SSH 模組開發了 SFTP 站台的檔案上傳腳本。需求又新增 FTPS 站台的檔案上傳支援。找了一下 PowerShell Gallery 比較多人使用的是 PSFTP 模組,測試了一下,發現大部分都是支援 FTP 與 SFTP,沒有直接支援 FTPS 的。沒有,那我們就直接在 PowerShell 裡刻一個吧。

在PowerShell Core 7以posh-ssh模組進行SFTP上傳

在PowerShell Core 7以posh-ssh模組進行SFTP上傳

前篇提過,因為某些 Module (模組)的關係而無法升級使用 PowerShell Core,這問題在 PowerShell Core 7 提供了一個 -UseWindowsPowerShell 的相容模式可以解決。但說歸說,沒有親手驗證的東西要放到正式區執行總有些不安。剛好手頭有個 SFTP 的案子,就簡單寫一支 PowerShell Core 7 + posh-ssh 腳本實際測試一下:

網頁式FTP Client

FTP Client,是要翻譯成「用戶」、「用戶端」、「用戶端連線軟體」,不知那個比較好?

相對於FTP Server,FTP Client也就是跟Server連線的軟體,透過FTP Client與FTP Server連線後,只要權限足夠,那我們可以管理FTP Server上的檔案,上傳、下載、新增、刪除,這不管是在我們檔案管理、網站網頁管理,FTP Server/Client絕對有很大的功勞。

但對於使用者而言,最常用也最常出現「莫名奇妙」問題的FTP Client就是IE,而我們又不能要求這些一般使用者安裝較好的FTP Client軟體,如FileZilla…,這個是我長久以來的問題點,不想讓使用者使用IE來連接FTP Server,尤其是上傳等動作。

所以我找到一個網頁FTP Client的網站,它提供網頁式FTP Client的功能,讓我們可以透過它來登入FTP Server,然後做想做的事。

net2ftp

使用上直覺又簡單,而且還提供多國語系,我透過net2ftp來連台灣及大陸的FTP,速度上都還可以接受,反應時間約在3-4秒。而它除速度不是咻咻咻等級,大概只有帶一點廣告,是我比較不喜歡,其它都是可接受。

而且它還提供原始檔,讓大家可以下載使用,哦,真是佛心級的啦!

直接使用檔案總管來登入FTP Server

  之前在「使用網址登入FTP」討論過直接使用網址的方式來登入FTP Server,但如果感覺麻煩,還有更方便的方式。

  如果你使用過IE來連接FTP Server,應該看過以下的畫面:

IE連接FTP Server

  在IE的畫面上會提示你可以「在Windows檔案總管中開放啟FTP」,我們可以到功能列「檢視→在Windows檔娛總管中開啟FTP 站台」,再到功能列「檔案→登入身份」進行登入作業。

  一般人都是先經過IE再到檔案總管再登入,需要經過三個步驟,其實不用那麼麻煩,直接透過檔案總管就好了。

Step 1:在「我的電腦」→按滑鼠左鍵→選擇「檔案總管」;


開啟檔案總管
Step 2:在檔案總管的「路徑」(網址列)直接輸入FTP Server網址;
檔案總管路徑列
Step 3:我們輸入測試網址:ftp://192.168.3.12;
    前面的「ftp://」不能少,不然總案總管不知道你是要連接FTP Server;

總案總管輸入FTP Server網址
Step 4:選擇「檔案」;
功能列-檔案
Step 5:選擇「登入身分」;

功能列-登入身份
Step 6:輸入認證資料;

FTP認證視窗
  以上的步驟就是少了IE跳到檔案總管的過程,讓我直接使用檔案總管來上傳下載檔案到FTP Server。雖然一直強調IE這種Browser只合適拿來「下載」用,但如果在非私人電腦上,也不失一個辦法。

  以上步驟在Windows XP也適用,只是畫面有點不同,我就不重抓了。

使用網址登入FTP

  一般我們要連到FTP下載資料,絕大部分使用者都是使用Browser,一般匿名使用者使用也是方便,除了完整的URL外,另外也可能是連入FTP Server後,畫面上會出現一個列表(List)清單,再由User自行選擇要下載的資料。

  例如:各大學的FTP站點。像我常需要下載新版的Linux Server,你從國外原始Linux網站找到最後的下載點,都是台灣各大學的FTP站點。

  但如果我要連入的FTP Server是需要認證的,是非匿名登入的呢?我認為最方便還是我使用FTP Client軟體,但是這不是一般使用者可以接受的方式,所以我們可以使用網址帶帳號、密碼的方式來進行FTP登入的動作。


FTP網址認證格式


  ftp://帳號:密碼@yourdomain.com
  例:
  ftp://kkbruce:12345@yourdomain.com

  那你會說,那會不會很不安全,那我的帳號密碼不是給人家看光光了?其實不會啦,因為當FTP Server驗證之後,你的網址列會自動轉換回原本ftp://yourdomain.com的顯示方式,並不會在網址列上顯示帳號密碼。

  記一下,會很方便在沒有FTP Client軟體的地方使用。

雷電FTPD自動關閉的問題

  有時真的覺得好玩,為什麼奇怪的問題都會出現在我面前,我在大學時管理實驗室時,也發生過一件樂透機率等級的事件。

  事情一樣在一台Server上,這台Server和前一篇的Server一樣,非常不穩定,而且當的亂七八糟,重灌還是一樣,直覺反應,應該是硬體出現了問題,也是花了一、二天時間,慢慢找問題,最後找出來,哈~讓我碰到壞HDD的機會真的很大,而且我還記得這台Server有三顆HDD,都是IBM,個人對它是沒什麼意見,只是碰巧吧!

  由於原先學校經費有限,而且只跑一些簡單WEB、DB、FTP(這個比較傷一點),所以使用的是IDE一般HDD,而這顆壞HDD的馬達已經會出現聲音,其實這些聲音我是不以為意,因為早期的HDD在讀取時的聲音本來就很大,但這顆HDD的聲音已經是不正常,會讀一讀停頓一會再繼續,而Server通常在它停頓時就”當、當、當”。

  原本很高興終於把問題解決了,就利用其他兩顆來灌系統後,不穩定的情況依然,這是怎麼回事?難到這兩顆HDD還有問題?又花了些時間測試,是的,還有一顆是壞的,有問題,我心想,未免太幸運了(以前沒有樂透這東西,不然應該會說:應該去買樂透)。

  好吧,只剩一顆應該沒問題了吧,又是一段重灌、設定…之路,全部完成後,不到一天,又開始當機了,我生氣了,真的想把那台Server從5樓實驗室丟出去,不會是連最後一顆HDD也掛了。各位觀眾,答案就是你想的那一個,連第三顆HDD也是有問題的,這三顆HDD讓我花費了整整連續七天不眠不休的時間。同一台Server,三顆HDD同時掛點,就算是現在的Raid 5/6系統也沒法了,雖然是不可能的機率,但就讓我碰過一次。

  這件事提醒我,做事不要做一半,當時我很高興測到第一顆HDD是有問題時,二、三顆我就沒接下去測,因為覺得機率太低,到第二顆也是,第三顆我也沒接下去測試,到了第三顆讓我知道機率不管多低都是機率,只要是非零的機率就是會發生的可能,樂透都有那怎多人中,我這有什麼好奇怪!難怪,我的統計學會被當,當我的還是實驗室跟我要好的管理老師,太對不起他了。@.@"""

  回來雷電FTPD身上,我使用雷電FTPD最新2.6.3644版本,也是上一篇的那一台Server,需要安裝FTP Server來上傳、下載檔案,因為Server剛裝好,所以需要上傳大量的檔案,1萬多筆,我使用Filezilla 3.1.6將「最大同時傳輸數目」開到最大的10,然後將檔案上傳,嗯,怎麼傳到一半雷電FTPD就自動關閉了,而且沒有任何錯誤息訊,試了兩、三次,情況依然。因公司是有買授權的,我當然不客氣,直接到 http://www.raidenftpd.com/tw/ 發信問他們(覺得討論區慢了點)。

  令人驚訝,他們那位johnlong回信速度很快,因為Server還沒上線服務,我開放遠端讓他測試看看是什麼問題。他調整設定值後,之前的情況沒在發生,但又發現另一情況,FTPD會自己重啟,但之前程序佔用的port 21還沒釋放,所以FTPD重啟後也無法順利載入,再請他測試之後確定是有些問題。第二天,他更新程式,調整設定值,他自己測試了七、八次,我也測了三次,嗯,上傳正常了,沒有問題了。我現在的雷電FTPD版本是為連官網都還沒出現的2.6.3680版。

  別人都不會發生的問題,就是會發現在我身上,不過我已經習慣習慣,就當成練功的機會。

ps. 另外,再給雷電的johnlong一些掌聲,他的回信、處理速度、解決速度,我非常滿意。