none
由於另一個處理序正在使用檔案 'C:\upload\ccb 0423.pdf',所以無法存取該檔案 RRS feed

  • 問題

  • 想請問大家

    本人有個程式於多年前用asp.net vb 所寫, upload了一個檔案後, 除之將該檔案刪除, 但自從我升級了Windows 10之後, 就不能刪除

    找了很久, 仍未來找到解決方案

    希望大家能幫忙指教一下, 謝謝

    行 125:                If fuDocUpload.HasFile = True Then
    行 126:                   System.IO.File.Delete((Session("uploadpath") + Session("UploadFName")))
    行 127:                   
    行 128:                End If

    2020年8月14日 上午 02:48

所有回覆

  • 查一下 upload 目錄的權限是否有給對。

    參考看看:https://serverfault.com/questions/570210/file-upload-permissions-issue-on-windows-server-2008-r2-iis-7-5-php-5-3-with-dru/570459#570459


    理直氣和,切記。

    個人

    2020年8月14日 上午 02:54
  • upload folder 

    在windows 的設定內, USER 及NETWORK SERVICE 都是給完全控制的

    2020年8月14日 上午 03:14
  • ASP.NET程式和Windows 10的執行身份預設非USER, 也不是NETWORK SERVICE, 請參考:

    了解在 IIS 中的識別身份

    2020年8月14日 上午 04:20
  • https://blog.miniasp.com/post/2009/09/09/Introduce-IIS-75-Application-Pool-Identity-and-Virtual-Account

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2020年8月14日 上午 11:48
  • 想請問我已經依以上的連結將Network Service 轉了用ApplicationPoolIdentity, 並給予Upload folder Full Control 權限

    但結果都是一樣, 

    這樣還有什麼我仍是錯漏嗎? 請指教, 謝謝

    2020年8月18日 上午 01:07
  • ApplicationPoolIdentity並不是帳號, 請問您是給那一個帳號Upload folder Full Control 權限?
    2020年8月18日 上午 06:10
  • 我是給IIS APPPOOL/efiling 權限的, 對嗎?

    我之前在IIS 應用程式集區新增了一個叫efiling的



    • 已編輯 chankc 2020年8月18日 上午 07:19
    2020年8月18日 上午 07:17
  • 這樣是對的, 所以錯誤可能不是權限的問題, 請問錯誤訊息是什麼?
    2020年8月19日 上午 12:04
  • 你好, 

    謝謝你回覆

    整個錯誤信息如下:

    由於另一個處理序正在使用檔案 'C:\upload\hsbc visa 0517.pdf',所以無法存取該檔案。

    描述: 在執行目前 Web 要求的過程中發生未處理的例外狀況。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。

    例外狀況詳細資訊: System.IO.IOException: 由於另一個處理序正在使用檔案 'C:\upload\hsbc visa 0517.pdf',所以無法存取該檔案。

    原始程式錯誤:
    行 124:                'btAddNewDoc.Enabled = True
    行 125:                If fuDocUpload.HasFile = True Then
    行 126:                   System.IO.File.Delete((Session("uploadpath") + Session("UploadFName")))
    行 127:                   
    行 128:                End If

    原始程式檔: G:\Programming\Asp.Net Workshop\eFiling\Filing.aspx.vb    行: 126

    堆疊追蹤:
    [IOException: 由於另一個處理序正在使用檔案 'C:\upload\hsbc visa 0517.pdf',所以無法存取該檔案。]
       System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +935
       System.IO.File.InternalDelete(String path, Boolean checkHost) +14434177
       Invoice.btAdd_Click(Object sender, EventArgs e) in G:\Programming\Asp.Net Workshop\eFiling\Filing.aspx.vb:126
       System.Web.UI.WebControls.Button.OnClick(EventArgs e) +11594096
       System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +274
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1890

    2020年8月19日 上午 12:20
  • 找 UnLocker 之類的軟體,直接對 pdf 解鎖,會顯示哪個 ProcessID 鎖定檔案,再透過工作管理員查是哪支程式鎖定。

    我忘了是 ProcessID 還是 hProcess ,若是 hProcess ,可以直接用 Visual Studio 的附屬工具 Spy++ 查,或是到微軟網站下載 Process Explorer 查。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2020年8月19日 下午 03:34
  • 對了,微軟網站有個工具 Process Monitor ,會記錄所有 IO 動作,也可以看看,但是那個紀錄量很大,找東西不好找。


    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2020年8月19日 下午 03:35
  • 您會不會在檔案上傳尚未完成時就要刪除檔案?
    2020年8月20日 上午 12:32
  • 你好, 

    我試過用process explorer 及 resource monitor, 

    都找不到有process在用這個檔案

    謝謝

    2020年8月20日 上午 01:35
  • 你好, 

    我用process explore 或 resource monitor 都找不到有process 是在用這個檔案

    我這個程式已用了差不多9年, 當轉了在windows 10之下就不能用

    在delete之前, 是執行了fileupload control postedfile.saveas  儲存檔案到另一個資料夾的位置

    而該檔案亦已成功儲存, 所以應該是已經完成了上傳

    謝謝

    2020年8月20日 上午 01:55
  • 所以才是先用 unlocker

    不精確的問法,就會得到隨便猜的答案;自己都不肯花時間好好描述問題,又何必期望網友會認真回答?

    2020年8月20日 上午 11:29
  • 有一種做法是自己寫儲存檔案的功能來解決這個問題, 請參考:

    Saving an uploaded file - the process cannot access

    2020年8月21日 上午 12:53