簡體   English   中英

將文件從一個服務器路徑復制到另一個,顯示訪問被拒絕

[英]Copy file from one server path to another showing access denied

雖然我已授予完全訪問權限,但文件從一個服務器路徑復制到另一個顯示訪問被拒絕的服務器。

錯誤:System.UnauthorizedAccessException:對路徑的訪問被拒絕。 在System.IO.File.InternalMove處位於System.IO .__ Error.WinIOError(Int32 errorCode,字符串mayFullPath)(字符串sourceFileName,字符串destFileName,布爾值checkHost)

我已嘗試授予所需文件夾的安全訪問權限

string sourceFile = "C:/inetpub/wwwroot/MATS_History_Load_App/Python_Scripts/MATSUpgrade.xlsx";

string destinationFile = "//192.xxx.47/Mats/mats_test/MATSUpgrade.xlsx";

// To move a file or folder to a new location:
System.IO.File.Move(sourceFile, destinationFile);

重要說明:該應用程序托管在IIS上

假設您的代碼流程的標識沒有訪問問題:

開箱即用的效果很好,嘗試用反斜杠替換斜杠並在路徑字符串前使用@

string sourceFile = @"C:\temp\test.txt";
string destinationFile = @"\\fileshare\users\xy\prime.txt";
System.IO.File.Move(sourceFile, destinationFile);

否則,在服務或Web托管方案中,您需要考慮執行身份的訪問權限:

https://support.microsoft.com/zh-CN/help/207671/how-to-access-network-files-from-iis-applications

據我所知,是否要修改或訪問網絡共享文件夾。 您應該確保選擇了正確的應用程序池標識許可權。 如果使用網絡服務帳戶作為標識,則仍需要在共享文件夾上添加足夠的權限,因為網絡服務和本地系統都以計算機帳戶(DOMAIN \\ computer $)的形式出現在網絡上。

通常,我們將選擇網絡服務。

詳細信息,您可以參考以下步驟:

1.打開IIS管理控制台,選擇正確的應用程序池,然后單擊高級設置。

在此處輸入圖片說明

2.選擇身份並將帳戶修改為網絡服務

在此處輸入圖片說明

3.右鍵單擊計算機,然后單擊屬性,您將找到以下計算機名稱:

在此處輸入圖片說明

4.轉到共享文件夾服務器,右鍵單擊該文件夾,然后單擊屬性。 然后,您可以像這樣(Domain \\ Servername $)將服務器的帳戶添加到該帳戶中

在此處輸入圖片說明

暫無
暫無

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

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