2017-01-06 47 views
0

我們在SERVER-B上有Intranet Web應用程序(ASP.NET 4.5)。它與SERVER-A位於同一個域中。如何從Intranet應用程序檢查SERVER-A上是否存在文件?我嘗試使用File.Exits/Directory.Exis,FileWebRequest,無法使其工作。是否有IIS設置允許?如何從IIS應用程序驗證網絡文件和文件夾

注意:我可以使用文件資源管理器瀏覽Server-A上Server-A上的文件。 注意:HttpWebRequest'確實'用於在我們的外部網站上查找文件,但該方法不適用於我們的Intranet進行網絡連接。

方法A(結果始終爲假)

File.Exists("\\xyz-123\Shipping\State\ca.doc") 
Directory.Exists("\\xyz-123\Shipping\State") 

方法B(結果始終爲假,不返回錯誤)

'url = "file://xyz-123/Shipping/State/ca.doc" 
Private Function FileExist(url As String) As Boolean 
    Dim response As WebResponse = Nothing 
    Try 
     Dim request = DirectCast(WebRequest.Create(url), FileWebRequest) 
     request.Method = "HEAD" 

     response = DirectCast(request.GetResponse(), WebResponse) 
     FileExist = True 
    Catch ex As Exception 
    Finally 
     If response IsNot Nothing Then response.Close() 
    End Try 

End Function 

回答

1

的方法A如果您共享工作會與用戶運行代碼的\\xyz-123\Shipping\State文件夾。

1

幾乎可以肯定你的問題是與權限相關的。您的IIS網站作爲屬於IIS中應用程序池的「IIS應用程序」運行。該應用程序池具有與其關聯的Windows登錄名。該登錄需要有權訪問第二臺機器上的文件。

要解決該問題,請查看IIS中的應用程序池設置,找出應用程序池在哪個用戶下運行,並更改文件共享的權限以允許他們訪問。要進行調試,您可以嘗試將您自己的憑據分配到您的網站正在運行的IIS應用程序池,並且您可能會發現它有效,因爲您本人確實有權訪問這些文件。

相關問題