簡體   English   中英

檢查是否存在來自遠程服務器的文件

[英]Check if file from remote server exists

我有一個需要遠程服務器上文件訪問權限的應用程序。

我的應用程序在服務器A中,我要訪問的文件在服務器B中。這2台服務器在同一域中。

我在服務器A中為服務器B中的目錄創建了一個虛擬目錄。虛擬目錄的名稱為FolderFromServerB,其路徑為\\ ServerB \\ Folder。 我使用一個用戶進行身份驗證,當我在IIS中測試連接時,它說一切正常。

另外,當我將錨標記放在如下所示的測試文件中時,我可以訪問該文件,並且內容顯示在頁面中:

<a href="FolderFromServerB/test.txt">Test file</a> -->  **This works**

但是我的問題是,當我使用代碼來確定該文件是否存在時,它總是返回False。 我的代碼如下:

FileInfo fi =新的FileInfo(@“ \\ FolderFromServerB / test.txt”); -> 這不起作用

Response.Write(fi.Exists); ->這總是'False'

我向服務器B中的用戶&網絡服務&每個人&管理員授予了'完全控制'權限,但是我都沒有工作。

我該如何運作?

上周在工作。 我猜服務器已經自我更新,並且發生了一些更新,但是我找不到任何解決方法。 我現在非常絕望,我必須更改所有代碼並花很多時間才能使它工作。

我發現了web.config中的解決方法:

<identity impersonate="true"  userName="{domain}\{username}" password="{password}"/>

我使用File.Exist()了幾個月,但是突然間它消失了而且沒有用,我也不知道為什么。 但這是上面的解決方案。

您的代碼不起作用,因為ASP.Net應用程序的當前執行文件夾不是您應用程序的文件夾,而是c:\\windows\\system32

創建FileInfo對象時,將嘗試讀取c:\\windows\\system32\\FolderFromServerB\\test.txt

<a href="FolderFromServerB/test.txt">有效,是因為該鏈接是相對於當前頁面的鏈接(如果該頁面位於另一個目錄中,則該鏈接將<a href="FolderFromServerB/test.txt"> )。

如果要查找的文件位於應用程序目錄下,則可以使用以下命令將虛擬路徑轉換為物理路徑:

string actualFilePath = HttpContext.Current.Server.MapPath("~/FolderFromServerB/test.txt");
FileInfo fi = new FileInfo(actualFilePath);

暫無
暫無

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

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