none
請問使用file.copy的問題 RRS feed

  • 問題

  •  

    請問各位先進

    目前我的WEB系統上一個需求,要將一個純文字檔,上傳到其他Server去

    WEB Server是2003 Server+IIS 6.0

    目的地的Server是3台Unix的Server

    但是現在遇到一個問題

    一開始使用FtpWebRequest的方式的時候,完全沒有任何錯誤

    後來因為有其他的建議,所以改用File.Copy的方式傳檔

    但是只要用了File.Copy的方式傳檔

    就有機會發生錯誤(程式上線之後才發生錯誤,測試時都正常可以跑)

    若連續發生太多次,會造成IIS pool被停掉,整個網站就不能用了

    只要將File.Copy的方式,改回ftp的方式,就完全沒有問題

     

    發生錯誤的時候,在事件檢視器有看到"伺服應用程式集區 'AP005' 的處理序與 World Wide Web Publishing

    服務通訊時發生嚴重錯誤。"這種錯誤訊息

    在程式內部的try catch攔到錯誤的log裡,所記錄錯誤發生的時間,跟事件檢視器記錄錯誤發生的時間又不相同

    而且兩邊記錄的時間相差非常遠,完全無法判斷到底是什麼問題

     

    老闆一直在問這個問題到底是什麼原因

    但是查了很久,都沒有查到相關的資料

    不知道各位先進有沒有遇過相同的情況,可以提供建議或是可以提供哪裡有相關資料可以查詢的

    謝謝

    2008年5月16日 上午 06:23

解答

  • 確認 Unix 有使用 Samba 來支援 SMB 網路協定,如此才能用 UNC 名稱複製檔案。

     

    如果是 "指定的網路名稱無法使用",表示網路可能有問題,或是 Samba Server 不穩定,才會這樣。

    2008年5月16日 下午 12:05
    版主

所有回覆

  • File.Copy ?你是用 UNC 路徑嗎?

     

    Unix 那邊我不確定,我試過 Linux 設定支援網芳,並設好網芳帳號,就可以直接用 UNC 路徑。

     

    相關討論可以搜尋 UNC :

    http://forums.microsoft.com/MSDN-CHT/Search/Search.aspx?words=UNC&localechoice=31748&SiteID=14&searchscope=forumscope&ForumID=236

    2008年5月16日 上午 07:44
    版主
  • 您好,

    我這邊在使用file.copy的時候,是使用UNC路徑,

    在開發的時候,有查詢過UNC相關的資料

    您所建議的相關設定,也都有設定了

    也有跟Unix Server的管理員確認過,相關的權限設定都有開啟

    2003 Server的"儲存的使用者名稱和密碼"也有設定

    狀況還是不定期的發生

     

    目前我這邊的處理方式是

    按照MSDN文件上所列的所有exception,都用try catch去攔,看是發生哪一個問題

    目前有攔到的錯誤都是IOException:指定的網路名稱無法使用。

    可是錯誤的log時間跟Server上事件檢視器上記錄的時間完全不同

    完全無法判斷到底是什麼原因發生問題

    2008年5月16日 上午 08:49
  • 確認 Unix 有使用 Samba 來支援 SMB 網路協定,如此才能用 UNC 名稱複製檔案。

     

    如果是 "指定的網路名稱無法使用",表示網路可能有問題,或是 Samba Server 不穩定,才會這樣。

    2008年5月16日 下午 12:05
    版主
  • 您好,

    Unix Server的設定是確定有開的,

    因為有其他系統也是在複製檔案到同樣的Server同樣的目錄下

    那個系統好像是C寫的,詳細情況不清楚,但是沒有聽到有反應有問題

     

    看到"指定的網路名稱無法使用"

    我的想法也是可能是當下網路有問題,造成複製檔案失敗

    但是老闆說了一句"發生問題不要用猜的,要知道確實的原因"

    所以才會花時間在查相關的資料和改寫程式紀錄log

    可是現在就找不到可以解釋的原因....冏rz
    2008年5月19日 上午 08:28
  • 防火牆有開允許 SMB 的訊息進入嗎?

     

    2008年5月19日 上午 08:58
    版主
  • 您好,

    這個問題已跟我們網管確認過有開放

     

    我想相關的設定應該都有開啟了

    只是現在程式偶而會連續發生錯誤,然後造成pool錯誤,service會停掉

    是否還有其他需要注意的地方呢?

    2008年5月21日 上午 03:52
  • 在可能發生錯誤的地方使用 try/catch 來包裝比較好。

    因為有可能是因為未處理的例外太多,才讓 pool 掛掉。

     

    2008年5月21日 上午 05:02
    版主